给定问题:在字符串中查找重复的子字符串,是否可以使用散列?我想创建一个字典,其中子字符串作为键和重复实例的数量作为值。这是我到目前为止。我收到一个错误,因为我使用了一个子字符串作为字典的关键字。任何人都能发现我的错误吗谢谢!!!使用散列查找字符串内部的重复子字符串
def findsubs(str):
d={}
for i in range(len(str)-1):
for j in range(i+2, len(str)-2):
if d[str[i:j]]>1:
return str[i:j]
else:
d[str[i:j]] = d[str[i:j]] +1
return 0
打印findsubs( “abcbc”)
更好地使用'setdefault'(或者使用'defaultdict'代替'或',在这种情况下'计数器')比明确地检查'入'和分配'0'。它更简单,更具可读性,更简洁,更高效。几乎每个类别都赢得胜利。 (否则,很好的答案。) – abarnert 2014-11-04 22:56:37