Penyelesaian hari ini hanya dilakukan dalam Python hari ini, kerana tbh, saya mendapati sukar untuk mencari masa untuk menulis dalam kedua-dua Python dan C# serta menulis, jadi memilih untuk melakukan salah satu daripada yang lain ke hadapan .
Ini adalah agak lurus ke hadapan, permintaannya adalah untuk menukar input kepada id dan ruang kosong , dengan indeks ganjil ialah id dan genap ialah ruang kosong (.) dan ulangi x kali berkorelasi dengan nombor dalam input cth;
1234 =>
1 => 1x id --> 0
2 => 2x kosong --> ..
3 => 3x id --> 111
4 => 4x empy --> ....
Barisan keseluruhan => 0..111....
Kami kemudiannya diminta untuk mengalihkan elemen paling kanan ke ruang paling kosong di sebelah kiri.
iaitu gerakkan 1 -> yang pertama (.), kita melakukan ini menggunakan dua gelung, satu pergi dari belakang -> hadapan, dan hadapan yang satu lagi -> belakang.
Apabila kami menjumpai Id, kami bergerak dari hadapan untuk mencari ruang kosong pertama, dan menukar titik ini, dan meneruskan sehingga semua nombor dari kanan dialihkan ke ruang kosong kiri.
Selagi indeks kanan, sentiasa lebih besar daripada indeks kiri, atau mereka belum bertemu di tengah teruskan.
Sekarang daripada hanya mencari ruang paling kiri yang paling kosong, kita perlu mencuba dan mencari ruang paling kiri paling kosong, yang boleh memuatkan keseluruhan fail (id) contohnya jika kita mempunyai ID fail 9999, kita memerlukan 4 ruang kosong bersama-sama, jika tidak, kita memindahkannya ke ruang kosong seterusnya. Jika tiada ruang kosong kita beralih ke fileId seterusnya.
[Spoiler] -> Penyelesaian boleh didapati di GitHub
Seperti biasa anda boleh menghubungi dan mengikuti di Twitter
Atas ialah kandungan terperinci Kemunculan Kod - Pecah DayDisk (Python). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!