【发布时间】:2019-03-29 22:30:28
【问题描述】:
给定字符串“lion”应该得到以下子字符串的输出, ["离子", "lin", "in", "io", "li", "on", "lion"]
这是我目前所拥有的,
def Substring(n):
sub = [n]
if len(n) > 2:
sub.extend(Substring(n[1:]))
sub.extend(Substring(n[:-1]))
return list(sub)
我当前的输出是['lion', 'ion', 'on', 'io', 'lio', 'io', 'li']
我缺少子字符串“lin”和“in”,我不应该有“lio”。
如果我需要不同的方法或需要额外的语句,我无法弄清楚?
【问题讨论】:
-
为什么
lio无效? -
为什么输出中没有“lon”?那么“lo”和“ln”呢?
-
lion 没有子字符串 lin 或 in 或 lon。它不是一个子字符串,它是一个组合
-
我写了一个答案,假设这只是“所有可能的子字符串”而没有仔细阅读......你的任务是弄清楚实际算法是什么,或者你只是没有给我们全文的任务?
-
任务是编写一个接受字符串参数并返回子字符串的函数。 “lo”没有被计算在内,因为没有从 lion 到 lo 的子词路径。
标签: python string function recursion substring