Biorąc pod uwagę serię o
s reprezentujących kropki, połącz je pionowo lub poziomo
Przykłady
Wejście:
o o
o
Wynik:
o---o
|
|
o
Wejście:
o o o
o
Wynik:
o---o----o
|
o
Spec
Jeśli chcesz, aby dane wejściowe były wypełnione spacjami i tworzyły prostokąt, podaj to w swojej odpowiedzi
Na
o
wejściu będą tylko spacje i znaki nowej linii- Zawsze będzie para kropek do połączenia
- Żadne dwa
o
nie będą bezpośrednio przylegać - Kropki należy łączyć odpowiednio z,
|
i-
dla połączeń pionowych i poziomych - Żadne połączenia kropkowe nie będą się nakładać
Odpowiedzi:
Japt,
3329 bajtówPrzetestuj online!
Jak to działa
źródło
Rubin,
137133 bajtówTo jest absolutnie okropne. Wciąż próbuję grać w golfa.
Proszę podać jako wypełniony prostokąt.
Nowa linia dla „czytelności”:
źródło
\b
zamiast(?=o)
?Siatkówka , 80 bajtów
Dane wejściowe należy uzupełnić.
Wypróbuj online!
Wyjaśnienie
Pierwszy etap jest dość prosty, po prostu zamienia wszystkie spacje w łączniki, które znajdują się między dwoma
o
s w tej samej linii.Drugi etap obejmuje
|
s. Jest to nieco trudniejsze i wymaga równoważenia grup . Spojrzeniesprawdza, czy jest
o
wcześniej w tej samej kolumnie. Pamiętaj, że za spojrzeniami należy czytać od prawej do lewej.(.)*
zapamiętuje poziomą pozycję dopasowania,\D*¶
sprawdza przeskakiwanie do dowolnego znaku w poprzednich liniach,o
dopasowuje dosłownie. Następnie(?(1)!)^(?<-1>.)*
zapewnia, że jego położenie w poziomieo
jest takie samo.Spojrzenie w przyszłość
Robi dokładnie to samo w przeciwnym kierunku.
źródło