Biorąc pod uwagę wejście dwóch ciągów znaków z sekwencjami znaków podkreślających odpowiadające słowa, wypisz zdania z wypełnionymi „pustymi miejscami”.
Najlepszym sposobem opisania tego wyzwania jest przykład. Oto przykładowe dane wejściowe:
programming _____________ and code golf
programming puzzles ______ code ____
A oto odpowiednie wyjście:
programming ___puzzles___ and code golf
programming puzzles _and__ code golf
Na potrzeby tego wyzwania „słowo” jest zdefiniowane jako sekwencja jednej lub więcej małych liter, a „puste” jest zdefiniowane jako jeden lub więcej podkreślników (dane wejściowe zawsze będą zawierać tylko małe litery, spacje i podkreślenia) . Słowa i półfabrykaty w ciągach są oddzielone pojedynczymi odstępami, a suma liczby słów i pustych w zdaniach zawsze będą równe.
Celem wyzwania jest wypełnienie wszystkich pustych pól prawidłowymi słowami , które są słowami, które zajmują ten sam indeks w drugim ciągu po podzieleniu spacjami.
Słowo musi być wyśrodkowane na pustym miejscu, jak pokazano słowem „puzzle” w powyższym przykładzie - po obu stronach pozostaje taka sama liczba znaków podkreślenia.
Jeśli słowa nie można dokładnie wyśrodkować, dodatkowy znak podkreślenia może znajdować się po lewej lub po prawej stronie (np. Słowo „i” w powyższym przykładzie).
Zawsze będzie wystarczająca liczba znaków podkreślających, aby dopasować słowo, ale może być dokładnie tyle, ile długość słowa (np. Słowo „golf” w powyższym przykładzie).
Nigdy nie będzie spacji w tej samej pozycji w obu ciągach.
Dane wejściowe / wyjściowe mogą być dowolne z poniższych (dane wejściowe / wyjściowe niekoniecznie muszą być wykonywane tą samą metodą):
pojedynczy ciąg oddzielony dowolnym znakiem, który nie jest alfabetyczny, spacja lub znak podkreślenia (np. ciąg oddzielony znakiem nowej linii lub przecinek)
tablica / lista / itp. dwóch strun
dwa argumenty funkcji / wiersza poleceń (tylko dane wejściowe)
Ponieważ jest to code-golf , wygra najkrótszy kod w bajtach.
Powyższy przykład można wykorzystać jako przypadek testowy. Oto większy przypadek testowy (drugi ciąg wyjściowy może się nieznacznie różnić ze względu na różne zachowanie centrowania):
lorem _____ dolor _____ amet _______________ adipiscing elit mauris dapibus tincidunt _____________________________ accumsan fringilla proin vulputate viverra lorem fermentum dictum
lorem ipsum ______ sit _______ consectetur _______________ elit mauris dapibus tincidunt metus accumsan fringilla proin vulputate viverra lorem ____________________________ dictum
lorem ipsum dolor _sit_ amet __consectetur__ adipiscing elit mauris dapibus tincidunt ____________metus____________ accumsan fringilla proin vulputate viverra lorem fermentum dictum
lorem ipsum dolor_ sit _amet__ consectetur __adipiscing___ elit mauris dapibus tincidunt metus accumsan fringilla proin vulputate viverra lorem _________fermentum__________ dictum
