Sebagai seseorang yang tidak mau repot-repot melihat pentominos mereka untuk melihat apakah itu membuat bentuk persegi panjang, saya telah memutuskan untuk membuat Anda menulis sebuah program yang melakukannya.
Tugas Anda
Diberikan beberapa input split oleh baris baru yang berisi 12 karakter unik, putuskan apakah itu solusi yang valid.
Solusi yang valid HARUS
- Memiliki 5 karakter masing-masing (kecuali baris baru)
- Setiap set karakter harus terhubung sepenuhnya
- Setiap rangkaian karakter harus memiliki bentuk yang unik
- Berada dalam bentuk persegi panjang biasa
Jika itu adalah solusi yang valid, output nilai kebenaran, jika tidak output nilai palsu.
Program Anda mungkin sebuah fungsi atau program penuh tetapi harus mengambil input dari stdin dan output ke stdout.
Uji kasus
Solusi yang valid
000111
203331
203431
22 444
2 46
57 666
57769!
58779!
58899!
5889!!
00.@@@ccccF111//=---
0...@@c))FFF1//8===-
00.ttttt)))F1/8888=-
Konfigurasi tidak valid
invalid (doesn't contain 12 unique characters)
111112222233333444445555566666
77777888889999900000qqqqqwwwww (Each set has the same shape)
1234567890qw
w1234567890q
qw1234567890
0qw123456789
90qw12345678 (None of the characters are connected)
1234567890qw (Not 5 characters in every set)
1111122222333334444455555666666
77777888889999900000qqqqqwwwwww (More than 5 characters in some sets)
00
0
00.@@@ccccF111//=---
...@@c))FFF1//8===-
.ttttt)))F1/8888=- (Doesn't form a rectangular shape)
Jawaban:
JavaScript (ES6),
237235222 byte2 byte disimpan berkat @DankMemes !
Pemakaian
Penjelasan
Beberapa catatan tentang solusi ini:
STDIN
danSTDOUT
untuk input dan output tetapiprompt()
hanya dirancang untuk input baris tunggal dan komputer (Windows) saya secara otomatis menempatkan\r\n
karakter di setiap baris baru ketika menempel jadi saya membuatnya menjadi fungsi yang menerima string.sumber
l=p.indexOf`<newline here>`
untuk menyimpan 2 byte