Skip to content

Problem 6 (200pts): sphinx_fixes

实现 sphinx_fixes,这是一个接受两个字符串的差异函数。 它返回必须在 start 单词中更改的最少字符数,以便将其转换为 goal 单词。 如果字符串长度不相等,则长度差异添加到总数中。

以下是一些示例:

>>> big_limit = 10
>>> sphinx_fixes("nice", "rice", big_limit)    # 替换:n -> r
1
>>> sphinx_fixes("range", "rungs", big_limit)  # 替换:a -> u, e -> s
2
>>> sphinx_fixes("pill", "pillage", big_limit) # 不替换任何内容,长度差异为 3。
3
>>> sphinx_fixes("roses", "arose", big_limit)  # 替换:r -> a, o -> r, s -> o, e -> s, s -> e
5
>>> sphinx_fixes("rose", "hello", big_limit)   # 替换:r->h, o->e, s->l, e->l,长度差异为 1。
5

重要: 如果必须更改的字符数大于 limit,则 sphinx_fixes 应返回大于 limit 的任何数字,并尽量减少计算量。

这两个对 sphinx_fixes 的调用应该花费大致相同的时间来评估:

```python

limit = 4 sphinx_fixes("roses", "arose", limit) > limit True sphinx_fixes("rosesabcdefghijklm", "arosenopqrstuvwxyz", limit) > limit True ```

在编写任何代码之前,解锁测试以验证你对问题的理解:

$ python ok -q 06 -u

解锁完成后,开始实现你的解决方案。 你可以用以下命令检查正确性:

$ python ok -q 06

尝试在 GUI 中开启自动更正。 它是否帮助你打字更快? 更正是否准确?