在此挑战中,您将编写一个程序,该程序将两个换行符分隔的字符串s1(第一行)和s2(第二行)作为输入(STDIN或最接近)。您可以假设s1的长度始终小于30且大于s2的长度。然后,程序应输出从s1到s2的levenshtein距离中的每个步骤。
为了弄清楚levenshtein距离中每个步骤的含义,程序将打印n个字符串,其中n是s1和s2之间的levenshtein距离,两个相邻字符串之间的levenshtein距离将始终为1。顺序无关紧要。输出应以换行符分隔,并且不包括s1,仅包括in和s2。该程序还应在一台现代计算机上在一分钟内运行。
例子:
输入:
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 2015年
Camper-Ampere,距离2,python脚本会永远运行...
—
edc65 2015年
“从STDIN或最接近的输入接受”有多严格?我可以编写一个通过函数参数接受输入的函数吗?当前接受的答案是这样做的。
—
nimi 2016年
s1(newline)s2
,但是,再次查看了问题之后,我想知道是否打算让程序根据输入的2个字符串的长度选择s1和s2,所以无论哪种顺序,您都可以澄清一下吗?也就是说,我们是假设输入是s1,然后是s2,还是基于两个输入的长度选择s1和s2?