Tantangan ini terkait dengan Flipping Pancake .
Anda mungkin pernah mendengar tentang penyortiran pancake , di mana setumpuk pancake diurutkan berdasarkan ukuran dengan memasukkan spatula ke dalam tumpukan dan membalik semua pancake di atas spatula, sampai pancake diurutkan terkecil hingga terbesar di piring. Masalah pancake yang terbakar sedikit berbeda. Semua panekuk sekarang memiliki satu sisi yang terbakar, dan sisi yang terbakar dari masing-masing panekuk harus menghadap piring setelah penyortiran selesai.
Sebagai contoh, diberi tumpukan berikut (ukuran panekuk di sebelah kiri. 0
Artinya sisi terbakar sebelah bawah dan 1
berarti sisi sisi atas terbakar di sebelah kanan):
1 0
3 1
2 1
Anda dapat membalik seluruh tumpukan untuk mendapatkan 20 30 11
, membalik dua teratas untuk mendapatkan 31 21 11
dan membalik seluruh tumpukan lagi untuk mendapatkan 10 20 30
, tumpukan pancake bakaran yang diurutkan. Urutan gerakan ini, flip 3, flip 2, flip 3, dapat direpresentasikan sebagai 3 2 3
.
Tantangan
- Dengan serangkaian ukuran pancake (tidak harus unik) dan orientasinya, menampilkan urutan penyortiran pancake bakaran yang valid, yaitu, urutan flips yang mengarah ke tumpukan pancake yang diurutkan dari yang terkecil hingga terbesar dengan sisi yang terbakar ke bawah.
- Input dan output mungkin merupakan format waras dengan pemisah, tetapi harap tentukan format mana yang Anda gunakan dan nyatakan ujung mana dari format input Anda yang berada di atas tumpukan (TOS).
- Membalikkan nol pancake diperbolehkan.
- Mencampur pemisah dalam input / output diperbolehkan.
Uji kasus
Untuk semua kasus uji berikut, input adalah daftar dan output adalah string yang dipisahkan oleh spasi, dan TOS di sebelah kiri.
[[1, 0], [3, 1], [2, 1]]
"3 2 3"
[[5, 1], [3, 0], [4, 1], [2, 1], [1, 0]]
"5 3 4 1 3 2 1"
[[5, 1], [3, 0], [3, 0], [1, 1]]
"4 3 2 3"
Seperti biasa, jika ada yang tidak jelas atau salah, harap beri tahu saya di komentar. Semoga berhasil dan bermain golf dengan baik!