Skenario
Saya sering memasak lasagna, tetapi saya juga memiliki beberapa kesalahan. Karena saya sering mengulangi kesalahan ini, saya pikir saya mungkin bisa melakukan program yang memeriksa jika saya melakukan semuanya dengan benar.
Lasagna yang benar
Lasagna yang valid adalah
- Lebar minimal 5 kolom
- Setidaknya 4 lapisan
- Tidak termasuk keju ekstra
- Lapisan atas adalah keju (diwakili oleh
,
) - Lapisan kedua adalah saus (diwakili oleh salah satu
@
atau#
) - Setelah itu lapisan-lapisan tersebut berganti (1 lapis saus, 1 lapis mie (diwakili oleh salah satu
~
atau-
)) - Setiap kolom dapat memiliki satu atau dua lapis keju
Program
Sebaiknya
- mengambil string lasagna sebagai input
- string multiline
- array string
- string hanya berisi karakter
,@#~-
- Persegi panjang
- Empuk dengan ruang jika perlu
- Keluarkan apakah itu lasagna yang valid
- Segala hal yang dahsyat dalam bahasa Anda jika valid
- Tidak ada atau apa pun yang salah dalam bahasa Anda
- menjadi baik
- program lengkap
- sebuah fungsi
- yang hanya menggunakan fungsionalitas yang diterapkan sebelum 14/12/2016
Uji kasus
,, ,
,,,,,,
@@@###
~~~~~-
@##@@#
--> truthy
@@@#
----
@@##
----
@###
--> falsy (cause of cheese and width (You don't have to print the stuff in the brackets))
,,,,,
-----
@####
-----
@@@@@
--> falsy (have the sauce as last layer)
Kriteria menang
Itu
- terpendek
- dalam byte
- kode-golf
- fungsional
pengiriman menang.
,@#~-
dengan pengecualian spasi sebagai padding, tetapi test case pertama berisi spasi di tengah garis.