Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Masalah HackerRank em Python - Senarai Jenis Data Asas

Masalah HackerRank em Python - Senarai Jenis Data Asas

WBOY
WBOYasal
2024-09-04 14:31:101048semak imbas

Problema HackerRank em Python - Base Data Types Lists

Kod Python ini direka bentuk untuk melaksanakan satu siri operasi pada senarai berdasarkan arahan yang dibekalkan pengguna. Mari analisa kod langkah demi langkah untuk memahami cara ia berfungsi:

if __name__ == '__main__':
    N = int(input())
    l = []
    while(N>0):
        cmd_l = input().split()
        if(len(cmd_l) == 3 and cmd_l[0] == "insert"):
            #insert statement
            l.insert(int(cmd_l[1]),int(cmd_l[2]))
        elif(len(cmd_l) == 2 and (cmd_l[0] == "remove" or cmd_l[0] == "append")):
            if(cmd_l[0] == "remove"):
                l.remove(int(cmd_l[1]))
            elif(cmd_l[0] == "append"):
                l.append(int(cmd_l[1]))
        elif(len(cmd_l) == 1):
            if(cmd_l[0] == "sort"):
                l.sort()
            elif(cmd_l[0] == "reverse"):
                l.reverse()
            elif(cmd_l[0] == "pop"):
                l.pop()                
            elif(cmd_l[0] == "print"):
                print(l)
        N -= 1

jika __nama__ == '__utama__':

  • Barisan ini menyemak sama ada skrip sedang dilaksanakan secara langsung. Amalan diterima pakai untuk memastikan bahawa kod dalam blok ini hanya akan dilaksanakan jika fail adalah titik masuk program.

N = int(input())

  • Atur cara menjangkakan pengguna memasukkan integer yang disimpan dalam pembolehubah N. Nombor ini mewakili bilangan operasi yang akan dilakukan oleh pengguna.

l = []

  • Senarai kosong yang digunakan untuk menyimpan elemen semasa operasi dijalankan.

semasa(N>0):

  • Gelung sementara dimulakan yang akan terus berjalan selagi N lebih besar daripada 0. Ini bermakna gelung akan melaksanakan N kali, sekali untuk setiap operasi yang ingin dilakukan oleh pengguna.

cmd_l = input().split()

  • Dalam gelung program menunggu pengguna memasukkan baris teks, yang dibahagikan kepada senarai rentetan (cmd_l) menggunakan kaedah split(). Setiap elemen senarai cmd_l mewakili sebahagian daripada operasi yang akan dilakukan.

jika(len(cmd_l) == 3 dan cmd_l[0] == "masukkan"):

  • Barisan ini menyemak sama ada operasi ialah perintah "masukkan" tiga bahagian (cmd_l mesti panjang 3 dan elemen pertama mesti "masukkan").

l.insert(int(cmd_l[1]),int(cmd_l[2]))

  • Jika keadaan di atas adalah benar, kaedah sisipan senarai l dipanggil. Argumen ditukar daripada rentetan kepada integer: cmd_l[1] ialah kedudukan di mana elemen akan disisipkan dan cmd_l[2] ialah elemen yang akan dimasukkan.

elif(len(cmd_l) == 2 dan (cmd_l[0] == "alih keluar" atau cmd_l[0] == "tambah")):

  • Barisan ini menyemak sama ada operasi ialah perintah "alih keluar" atau "tambah" dua bahagian cmd_l mesti mempunyai panjang 2 dan elemen pertama mestilah "alih keluar" atau "tambah".

jika(cmd_l[0] == "alih keluar"):
l.buang(int(cmd_l[1]))
elif(cmd_l[0] == "tambah"):
l.append(int(cmd_l[1]))

  • Bergantung pada arahan (alih keluar atau tambah), kaedah yang sepadan daripada senarai l dipanggil. Untuk mengalih keluar, elemen cmd_l (ditukar kepada integer) dialih keluar daripada senarai. Untuk tambahan, elemen cmd_l[[1](ditukar kepada integer) ditambahkan pada penghujung senarai.

elif(len(cmd_l) == 1):

  • Menyemak sama ada operasi adalah perintah satu bahagian (cmd_l mesti mempunyai panjang 1).

jika(cmd_l[0] == "isih"):
l.sort()
elif(cmd_l[0] == "terbalik":
l.terbalik()
elif(cmd_l[0] == "pop"):
l.pop()
elif(cmd_l[0] == "cetak"):
cetak(l)

  • Bergantung pada arahan (isih, songsang, pop atau cetak), kaedah yang sepadan dari senarai l dipanggil. mengisih mengisih senarai, membalikkan susunan unsur, pop mengalih keluar elemen terakhir dan mencetak mencetak senarai.

N -= 1

  • Di penghujung gelung, N dikurangkan dengan 1, menunjukkan bahawa operasi telah dilakukan. Ini berterusan sehingga N ialah 0, apabila gelung tamat.

Atas ialah kandungan terperinci Masalah HackerRank em Python - Senarai Jenis Data Asas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn