Zainspirowany tą małą grą .
Wyzwanie
Jako dane wejściowe podano początkową pozycję siatki (zawsze 5 x 5), jak poniżej:
-ABCD
-A---
---C-
---BD
--E-E
Musisz połączyć litery (wszystkie te same litery razem), usuwając wszystkie puste -
spacje. Listy będą zawsze A,B,C,D and E
.
Każda para liter musi być połączona pojedynczą nierozgałęzioną linią, która może zginać się pod kątem prostym (używając tej samej litery do przedstawienia linii).
Na wejściu gwarantowane jest, że każda litera początkowa ma dokładnie 2 razy i zawsze będzie miała wszystkie początkowe litery AE.
Dane wejściowe można odczytać ze stdin lub jednego łańcucha jako argumentu do jakiejś funkcji, a nawet tablicy / matriz / listy znaków, co jest najbardziej dogodnym sposobem na Twój język kodowania.
Ponieważ jest to kod golfowy, wygrywa najkrótszy kod w bajtach!
Przykład
Dla każdego problemu istnieje nie tylko jedno rozwiązanie, ale reguły dotyczą wszystkich (bez pustej przestrzeni i oddzielnych liter). A wejście ma zagwarantowane co najmniej jedno prawidłowe wyjście.
Zacznijmy łączyć litery A:
AABCD
AA---
AA-C-
AA-BD
AAE-E
Teraz łącząc litery B:
AABCD
AAB--
AABC-
AABBD
AAE-E
Teraz łącząc litery C:
AABCD
AABC-
AABC-
AABBD
AAE-E
Teraz łącząc litery D:
AABCD
AABCD
AABCD
AABBD
AAE-E
I wreszcie litery E:
AABCD
AABCD
AABCD
AABBD
AAEEE
Kolejne próbki
input:
E--E-
BB-C-
AD---
---C-
AD---
output:
EEEEE
BBECE
ADECE
ADECE
ADEEE
input:
A----
---B-
-C-C-
-D-D-
BE-EA
output:
AAAAA
BBBBA
BCCCA
BDDDA
BEEEA
A-E
?Odpowiedzi:
Perl,
130128127 bajtówObejmuje +4 dla
-n0
(program nie działa z wiersza poleceń, więc-
spacja jest również liczona)Zadzwoń z wejściem na STDIN:
Teminate z
^D
lub^Z
cokolwiek, co zamyka STDIN w twoim systemieconnectletters.pl
:źródło