Entrada:
Duas strings (NOTA: a ordem de entrada é importante).
Saída:
Ambas as palavras / frases começam em linhas com uma linha vazia entre elas. Eles 'andam' horizontalmente 'próximos um do outro'. Mas quando eles têm o mesmo caráter na mesma posição, eles se cruzam e depois continuam andando 'próximos um do outro'.
Confuso você diz? Vamos dar um exemplo:
Entrada: Words crossing over
& Ducks quacking
:
Word quack n
s i g
Duck cross n over
Desculpe a pintura ruim do MS ..
Regras do desafio:
- Sempre voltamos a andar em linha reta depois de atravessarmos antes de atravessarmos novamente (veja o caso de teste acima {1} - onde
ing
é igual, mas depois de atravessarmosi
, primeiro precisamos voltar andando em linha reta (ignorando assimn
), antes que possamos atravessar novamenteg
). - As entradas podem ter diferentes comprimentos; nesse caso, a mais longa continua andando em linha reta (consulte os casos de teste 1, 2, 4 e 6).
- Ambas as entradas podem ser as mesmas (consulte o caso de teste 3).
- As entradas não conterão nenhuma guia nem novas linhas.
- Os espaços são ignorados como caracteres iguais (como um caso de aresta) ; nesse caso, o próximo caractere (sem espaço) depois disso - se houver - está passando por cima (consulte os casos de teste 3, 5 e 6).
- As entradas não podem ter caracteres adjacentes (fora do espaço) na mesma posição; nesse caso, ambos caminham em linha reta horizontalmente (consulte os casos de teste 2).
- Mesmo que o primeiro caractere seja igual, sempre começamos duas linhas separadas (consulte os casos de teste 3 e 6).
- Espaços à direita e uma única linha nova à direita são opcionais.
- Você pode assumir que as entradas conterão apenas caracteres ASCII imprimíveis (novas linhas e tabulações excluídas).
- As entradas são caso-sensível, de modo
A
ea
não são iguais, e não vai atravessar (ver caso de teste 7). - Ambos os comprimentos das entradas sempre serão pelo menos 2.
- Entrada e saída podem estar em qualquer formato razoável. Pode ser uma única String com novas linhas; um String-array / lista; impresso para STDOUT; Matriz 2D de caracteres; etc.
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- As brechas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código.
- Além disso, adicione uma explicação, se necessário.
Casos de teste:
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