【发布时间】:2015-12-11 09:24:25
【问题描述】:
假设你有两个字符串。每个字符串都有行,由换行符分隔。现在您想比较两个字符串,然后通过仅添加或删除一个字符串的行来找到最佳方法(最短的步骤数),将第二个字符串转换为第一个字符串。
即
字符串 #2:
abc
def
efg
hello
123
和字符串 #1:
abc
def
efg
adc
123
将字符串 #2 转换为字符串 #1 的最佳(最短步骤)解决方案是:
- 删除行位置 3 ('hello') 处的行
- 在行后添加“abc” 位置 3
如果您只能添加或删除行,如何编写通用算法来找到最快、最少步骤的解决方案将一个字符串转换为另一个字符串?
【问题讨论】:
-
这是为了测试类似的东西吗?根据允许使用的 C 功能,解决方案可能会有所不同。当您说“删除第 3 行位置的行('hello')”时,感觉就像您在谈论一个字符串数组。如果你只有一个字符串,“hello”从字符串 #2 的索引 12 开始。
标签: c algorithm shortest-path