Als jemand, der sich nicht die Mühe macht, auf seine Pentominos zu schauen, um festzustellen, ob sie eine rechteckige Form haben, habe ich beschlossen, dass Sie ein Programm schreiben, das dies tut.
Deine Aufgabe
Entscheiden Sie, ob es sich um eine gültige Lösung handelt, wenn einige Eingaben durch Zeilenumbrüche mit 12 eindeutigen Zeichen unterteilt sind.
Eine gültige Lösung MUSS
- Haben Sie 5 von jedem Zeichen (außer Zeilenumbrüchen)
- Jeder Zeichensatz muss vollständig verbunden sein
- Jeder Zeichensatz muss eine eindeutige Form haben
- Seien Sie in einer regelmäßigen rechteckigen Form
Wenn es sich um eine gültige Lösung handelt, geben Sie einen Wahrheitswert aus, andernfalls einen Falschwert.
Ihr Programm kann eine Funktion oder ein vollständiges Programm sein, muss jedoch die Eingabe von stdin und die Ausgabe von stdout übernehmen.
Testfälle
Gültige Lösungen
000111
203331
203431
22 444
2 46
57 666
57769!
58779!
58899!
5889!!
00.@@@ccccF111//=---
0...@@c))FFF1//8===-
00.ttttt)))F1/8888=-
Ungültige Konfigurationen
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)
Antworten:
JavaScript (ES6),
237235222 Byte2 Bytes dank @DankMemes gespart !
Verwendungszweck
Erläuterung
Ein paar Anmerkungen zu dieser Lösung:
STDIN
sowieSTDOUT
für die Eingabe und Ausgabe, sind jedochprompt()
nur für die Eingabe in einer einzelnen Zeile vorgesehen. Mein (Windows-) Computer fügt\r\n
beim Einfügen automatisch Zeichen in jede neue Zeile ein, sodass ich sie zu einer Funktion gemacht habe, die eine Zeichenfolge akzeptiert.quelle
l=p.indexOf`<newline here>`
, um 2 Bytes zu speichern