Wyzwanie
Podana lista ["Programming", "Puzzles", "Code", "Golf"]
słów wypisuje słowa w stylu krzyżówki:
Programowanie u z z G l Kod ls fa
Algorytm
- Musisz przetworzyć listę w podanej kolejności.
- Słowa są drukowane w naprzemiennych orientacjach, zaczynając od poziomu .
Te dwa słowa przecinają się na pierwszej literze pierwszego słowa, które jest również obecne w drugim słowie. Jeśli litera występuje w drugim słowie wiele razy, weź pierwszą.
Przykład :
["no", "on"]
staje się:o n o
i nie
n o n
Dodatkowe uwagi
- Przylegające słowa na liście będą miały co najmniej jedną wspólną literę.
["Hi", "there"]
nie jest prawidłowym wejściem. - Słowa nigdy się nie zderzą. Zawsze będzie wystarczająco dużo miejsca, aby wydrukować słowo na pierwszym możliwym skrzyżowaniu.
["Hello", "there", "end", "hello"]
nie jest prawidłowym wejściem - W dopasowaniu rozróżniana jest wielkość liter.
- Słowa mogą rozwinąć się w lewo i na górę.
- Litery słów poziomych muszą być oddzielone jedną spacją.
- Lista wejściowa będzie zawierać co najmniej dwa słowa.
- Wszystkie słowa będą pasować do wyrażenia regularnego:
[A-Za-z]+
- Możesz wydrukować tyle końcowych białych znaków lub znaków nowej linii, ile chcesz, o ile słowa są poprawnie połączone w łańcuch.
- Z drugiej strony nie możesz dodawać dodatkowych wiodących białych znaków. Słowo, które najbardziej unosi się w lewo, ma zero spacji wiodących, pozostałe linie mają tyle spacji wiodących, że wszystkie wiersze są poprawnie ustawione.
- Twój program musi być w stanie poradzić sobie z dowolną ilością słów
Zasady
- Dozwolona funkcja lub pełny program.
- Domyślne reguły wejścia / wyjścia.
- Obowiązują standardowe luki .
- To jest golf golfowy , więc wygrywa najmniej bajtów. Tiebreaker to wcześniejsze zgłoszenie.
Przypadki testowe
Lista wejściowa w pierwszym wierszu, wyjście rozpoczyna się w drugim wierszu.
[„Stack”, „Exchange”] mi x do h S tack n sol mi
[„This”, „site”, „graduated”, „wreszcie”] fa jest n T jego ukończył studia le l y
Happy Coding!
site
igraduated
jestt