給定問題:在字符串中查找重複的子字符串,是否可以使用散列?我想創建一個字典,其中子字符串作爲鍵和重複實例的數量作爲值。這是我到目前爲止。我收到一個錯誤,因爲我使用了一個子字符串作爲字典的關鍵字。任何人都能發現我的錯誤嗎謝謝!!!使用散列查找字符串內部的重複子字符串
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