入力:
2つの文字列(注:入力の順序は重要です)。
出力:
両方の単語/文は、それらの間に1つの空行がある行で始まります。彼らは水平に「隣り合って」「歩きます」。しかし、同じ位置に同じキャラクターがいる場合、彼らは互いに交差し、「隣同士に」歩き続けます。
混乱する?例を挙げましょう:
入力: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を参照)。
- 最初の文字が等しい場合でも、常に2行離れて開始します(テストケース3および6を参照)。
- 末尾のスペースと単一の末尾の改行はオプションです。
- 入力には印刷可能なASCII文字のみが含まれると想定できます(改行とタブは除外されます)。
- 入力は大文字と小文字が区別されるため
A
、a
等しくなく、クロスオーバーしません(テストケース7を参照)。 - 入力長は両方とも常に2以上です。
- 入力と出力は任意の合理的な形式にすることができます。改行を含む単一の文字列にすることができます。文字列配列/リスト。STDOUTに印刷されます。文字の2D配列。等
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、コードゴルフ以外の言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - 回答には標準の規則が適用されるため、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