Вхід:
Два рядки (ПРИМІТКА: порядок введення важливий).
Вихід:
Обидва слова / речення починаються на рядках з одного порожнього рядка між ними. Вони 'ходять' горизонтально 'поруч'. Але коли у них однаковий персонаж на одній і тій же позиції, вони перетинаються один з одним, а потім продовжують ходити «поруч».
Заплутано ви кажете? Наведемо приклад:
Введення: Words crossing over
& Ducks quacking
:
Word quack n
s i g
Duck cross n over
Правила виклику:
- Ми завжди спершу повертаємось пішки прямою лінією після того, як перейшли її, перш ніж ми можемо перетнути знову (див. Тестовий випадок вище {1} - де
ing
рівне, але після того, як ми перейшли даліi
, спершу треба повернутися назад ходити прямо (таким чином ігноруючиn
), перш ніж ми можемо знову перетнутись даліg
). - Входи можуть бути різної довжини, і в цьому випадку довший продовжує ходити по прямій лінії (див. Тестові випадки 1, 2, 4 і 6).
- Обидва входи можуть бути однаковими (див. Тестовий випадок 3).
- Вхідні дані не містять ні вкладок, ні нових рядків.
- Пробіли ігноруються як символи, що є однаковими (як крайовий регістр) ; у цьому випадку наступний (непробільний) символ після цього - якщо такий є - перетинається замість цього (див. Тестові випадки 3, 5 та 6).
- На входах взагалі не може бути суміжних (непробільних) символів на одній і тій же позиції, і в цьому випадку обидва просто йдуть по прямій горизонтальній лінії (див. Тестові випадки 2).
- Навіть якщо перший символ рівний, ми завжди починаємо два рядки (див. Тестові випадки 3 та 6).
- Кінцеві пробіли та окремий кінцевий новий рядок необов’язкові.
- Можна припустити, що вхідні дані будуть містити лише символи для друку ASCII (виключені нові рядки та вкладки).
- Входи чутливі до регістру, так
A
іa
не рівні, і не будуть перетинати (див тестового прикладу 7). - Обидві довжини входів завжди будуть не менше 2.
- Введення та вихід можуть бути у будь-якому розумному форматі. Може бути єдиним рядком з новими рядками; рядковий масив / список; надруковано в 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