【发布时间】:2015-01-16 13:56:02
【问题描述】:
一家灯饰店老板有多个不同类型的灯泡链,由不同颜色的灯泡按不同的顺序组成。除此之外,他还收集了大量各种颜色的灯泡。灯泡链由其灯泡的颜色顺序标识。他想通过以下任一方式将一种灯泡链转换为另一种灯泡链:
• 在某个位置添加灯泡。 • 从某个位置移除灯泡。 • 用另一个不同颜色的灯泡替换一个灯泡。
给定两个不同灯泡链的两个颜色序列,找到最小编号。进行此转换所需的操作。 (假设每种颜色都可以用一个字符表示,因此,灯泡链的颜色序列可以表示为字符序列或字符串。) 输入/输出规格输入: • 第一个颜色序列(字符串 A) • 第二个颜色序列(字符串 B)
输出: 将第一个灯泡链转换为第二个(整数)所需的最小操作数
示例输入 1:“asdfgh” 输入2:“sdfgh”
输出:1
输入1:“x” 输入2:“asdf”
输出:4
在上面给出的场景中,如何找到解决方案以及第一步必须是什么?我是算法写作的爱好者和初学者。
【问题讨论】:
-
问题描述了两个字符串之间的编辑距离(或 Levenshtein 距离)。查看Levenshtein distance 了解更多信息。
-
有趣的问题,我曾经遇到过类似的问题(更换哑铃上的重量,但额外添加只能从一侧更换);那时没有得到答案……你也可以试试数学论坛,因为它可能是一个已知的数学问题。
标签: algorithm solution equation-solving