Входные данные:
Две строки (ПРИМЕЧАНИЕ: важен порядок ввода).
Выход:
Оба слова / предложения начинаются со строк с одной пустой строкой между ними. Они «ходят» горизонтально «рядом друг с другом». Но когда у них одинаковый персонаж в одной и той же позиции, они пересекают друг друга, а затем продолжают идти «рядом друг с другом».
Смущаете, говорите? Давайте приведем пример:
Вход: Words crossing over
& Ducks quacking
:
Word quack n
s i g
Duck cross n over
Извините за плохую краску MS ..
Правила соревнований:
- Сначала мы всегда возвращаемся по прямой линии после того, как мы «перешли», прежде чем мы сможем снова пересечь (см. Тестовый пример выше {1} - где
ing
равен, но после того, как мы перешлиi
, мы сначала должны вернуться идти прямо (таким образом, игнорируяn
), прежде чем мы сможем снова перейтиg
). - Входные данные могут быть разной длины, и в этом случае более длинный продолжает идти по прямой линии (см. Контрольные примеры 1, 2, 4 и 6).
- Оба входа могут быть одинаковыми (см. Контрольный пример 3).
- Входные данные не содержат ни вкладок, ни новых строк.
- Пробелы игнорируются как символы, которые являются одинаковыми (как крайний регистр) , и в этом случае следующий (не пробел) символ после этого - если таковой имеется - вместо этого пересекается (см. Контрольные примеры 3, 5 и 6).
- Входные данные могут не иметь соседних (не пробельных) символов в одной и той же позиции, в этом случае оба они просто идут по прямой линии по горизонтали (см. Контрольные примеры 2).
- Даже если первый символ равен, мы всегда начинаем две строки друг от друга (см. Контрольные примеры 3 и 6).
- Завершающие пробелы и одна завершающая новая строка необязательны.
- Можно предположить, что входные данные будут содержать только печатные символы ASCII (исключая новые строки и вкладки).
- Входы чувствительны к регистру, так
A
иa
не равны, и не будут пересекать (см тестового примера 7). - Обе длины входов всегда будут как минимум 2.
- Ввод и вывод может быть в любом разумном формате. Может быть одной строкой с новыми строками; String-массив / список; напечатано в STDOUT; 2D массив символов; и т.п.
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. - К вашему ответу применяются стандартные правила , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами и типом возврата, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода.
- Также, пожалуйста, добавьте объяснение, если это необходимо.
Тестовые случаи:
1. Input: "Words crossing over" & "Ducks quacking"
1. Output:
Word quack n
s i g
Duck cross n over
2. Input: "bananas" & "ananas"
2. Output:
bananas
ananas
3. Input: "I see my twin!" & "I see my twin!"
3. Output:
I e y w n
s e m t i !
I e y w n
4. Input: "Is the weather nice?" & "Not really, no.."
4. Output:
Is th ally, no..
e
Not r weather nice?
5. Input: "Codegolf & Programming Puzzles" & "The golfer might solve puzzles"
5. Output:
Code o f & Programming P z l s
g l u z e
The o fer might solve p z l s
6. Input: "Can you turn the lights off?" & "Can you try to solve this?"
6. Output:
C n o urn the ve s off?
a y u t l t
C n o ry to so igh his?
7. Input: "one Ampere" & "two apples"
7. Output:
one Am les
p
two ap ere
8. Input: "Words crossing" & "Words Quacking"
8. Output:
W r s cross n
o d i g
W r s Quack n