入力:
改行または空白なしの2つの文字列。
出力:
両方の入力文字列は別々の行にあり、必要に応じてスペースを使用して、2つの文字列のいずれかに†を追加します。文字と三行目はA
、R
、M
と表す追加、除去、改変、及び不変。
†上部または下部の入力文字列にスペースを追加します(必要な場合)。このチャレンジの目標は、ARM
可能な限り少ない変化()で出力することです。これは、レーベンシュタイン距離とも呼ばれます。
例:
入力文字列がABCDEF
とAFBECD
であるとすると、出力は次のようになります。
A B CDEF
AFBECD
A A RR
次に、他の無効な出力の例を示します(さらに多くの出力があります)。
ABCDEF
AFBECD
MMMMM
A BCDEF
AFBECD
A MMMR
AB CDEF
AFBECD
MAMMMR
ABC DEF
AFBECD
MMAMMR
ABC DEF
AFBECD
MMAA RR
ABCDEF
AFB ECD
MMR MA
AB CDEF // This doesn't make much sense,
AFBECD // but it's to show leading spaces are also allowed
AM A RR
ただし、これらの変更には4つの変更しかないA B CDEF\nAFBECD \n A A RR
ため、このチャレンジの有効な出力のみです。
チャレンジルール:
- 入力文字列には改行やスペースが含まれないと想定できます。
- 2つの入力文字列の長さは異なっていてもかまいません。
- 2つの入力文字列のいずれかは、オプションの先頭/末尾のスペースを除いて、そのままにしておく必要があります。
- ご使用の言語がASCII以外をサポートしていない場合、入力には印刷可能なASCII文字のみが含まれると想定できます。
- 入力および出力形式は柔軟です。3つの個別の文字列、文字列配列、改行を含む単一の文字列、2D文字配列などを持つことができます。
- の代わりに別のものを使用することは許可されていますが、使用したもの
ARM
(つまり123
、またはabc.
など)を明記してください。 - 同じ量の変更で複数の有効な出力が可能な場合(
ARM
)、可能な出力の1つを出力するか、すべてを出力するかを選択できます。 先頭と末尾のスペースはオプションです。
A B CDEF AFBECD A A RR
または
"A B CDEF\nAFBECD\n A A RR" ^ Note there are no spaces here
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、コードゴルフ以外の言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターを持つ関数/メソッド、完全なプログラムを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストへのリンクを追加してください。
- また、必要に応じて説明を追加してください。
テストケース:
In: "ABCDEF" & "AFBECD"
Output (4 changes):
A B CDEF
AFBECD
A A RR
In: "This_is_an_example_text" & "This_is_a_test_as_example"
Possible output (13 changes):
This_is_an _example_text
This_is_a_test_as_example
MAAAAAAA RRRRR
In: "AaAaABBbBBcCcCc" & "abcABCabcABC"
Possible output (10 changes):
AaAaABBbBBcCcCc
abcABCab cABC
R MM MMMR MM R
In: "intf(){longr=java.util.concurrent.ThreadLocalRandom.current().nextLong(10000000000L);returnr>0?r%2:2;}" & "intf(){intr=(int)(Math.random()*10);returnr>0?r%2:2;}"
Possible output (60 changes):
intf(){longr=java.util.concurrent.ThreadLocalRandom.current().nextLong(10000000000L);returnr>0?r%2:2;}
intf(){i ntr=( i n t)(M ath.r andom ()* 10 );returnr>0?r%2:2;}
MR M MRRRRRR RRRR RRRRRR MMMRR MMMMRRR RRRRRRRR MRRRRRRRRR RRRRRRRRRR
In: "ABCDEF" & "XABCDF"
Output (2 changes):
ABCDEF
XABCD F
A R
In: "abC" & "ABC"
Output (2 changes):
abC
ABC
MM