この課題では、2つの改行で区切られた文字列s1(最初の行)とs2(2番目の行)を入力(STDINまたは最も近い)として受け取るプログラムを作成します。s1の長さは常に30より小さく、s2の長さより大きいと仮定できます。プログラムは、s1からs2までのレーベンシュタイン距離の各ステップを出力します。
レーベンシュタイン距離の各ステップの意味を明確にするために、プログラムはn個のストリングを出力します。ここで、nはs1とs2の間のレーベンシュタイン距離であり、2つの隣接するストリング間のレーベンシュタイン距離は常に1です。順序は関係ありません。出力は改行で区切る必要があり、s1は含めず、中間とs2のみを含める必要があります。このプログラムは、最新のコンピューターで1分以内に実行されるはずです。
例:
入力:
Programming
Codegolf
出力:
rogramming
Cogramming
Coramming
Coamming
Codmming
Codeming
Codeging
Codegong
Codegolg
Codegolf
入力:
Questions
Answers
出力:
uestions
Aestions
Anstions
Ansions
Answons
Answens
Answers
入力:
Offline
Online
出力:
Ofline
Online
入力:
Saturday
Sunday
出力:
Sturday
Surday
Sunday
以下は、距離とステップを出力するPythonスクリプトへのリンクです。
追加のルール:
- インターネットを使用しない
- 標準的な抜け穴が適用されます
これはコードゴルフですので、コードは短くしてください。最短のコードが勝ちます!
回答は妥当な時間内に実行する必要がありますか?
—
KSab
キャンピングカー-アンペア、距離2、pythonスクリプトは永遠に実行されます
—
...-edc65
「STDINからの入力または最も近い入力」はどれくらい厳格ですか?関数引数を介して入力を受け取る関数を作成できますか?現在受け入れられている答えはそうです。
—
-nimi
s1(newline)s2
が、もう一度質問を見て、2つの入力文字列の長さに基づいてプログラムがs1とs2を選択することを意図していたのではないかと思っていますどちらの順序でも、この点を明確にしていただけますか?つまり、入力はs1の後にs2が続くと仮定しますか、または2つの入力の長さに基づいてs1とs2を選択しますか?