Jako ktoś, komu nie przeszkadza, aby spojrzeć na swoje pentominos i sprawdzić, czy ma kształt prostokątny, postanowiłem napisać program, który to robi.
Twoje zadanie
Biorąc pod uwagę część danych wejściowych podzielonych na nowe wiersze zawierające 12 unikalnych znaków, zdecyduj, czy jest to prawidłowe rozwiązanie.
Prawidłowe rozwiązanie MUSI
- Posiadaj 5 każdego znaku (z wyjątkiem nowych linii)
- Każdy zestaw znaków musi być w pełni połączony
- Każdy zestaw znaków musi mieć unikalny kształt
- Mają regularny prostokątny kształt
Jeśli jest to poprawne rozwiązanie, wypisz prawdziwą wartość, w przeciwnym razie wypisz wartość fałsz.
Twój program może być funkcją lub pełnym programem, ale musi pobierać dane wejściowe ze standardowego wejścia i wyjściowe na standardowe wyjście.
Przypadki testowe
Prawidłowe rozwiązania
000111
203331
203431
22 444
2 46
57 666
57769!
58779!
58899!
5889!!
00.@@@ccccF111//=---
0...@@c))FFF1//8===-
00.ttttt)))F1/8888=-
Niepoprawne konfiguracje
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)
code-golf
string
decision-problem
niebieski
źródło
źródło
Odpowiedzi:
JavaScript (ES6),
237235222 bajtów2 bajty zapisane dzięki @DankMemes !
Stosowanie
Wyjaśnienie
Kilka uwag na temat tego rozwiązania:
STDIN
orazSTDOUT
do wprowadzania i wyprowadzania, aleprompt()
są przeznaczone tylko do wprowadzania jednowierszowego, a mój komputer (Windows) automatycznie wstawia\r\n
znaki w każdym nowym wierszu podczas wklejania, dlatego ustawiłem funkcję, która akceptuje ciąg.źródło
l=p.indexOf`<newline here>`
aby zaoszczędzić 2 bajty