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 oi 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!
siteigraduatedjestt