我正在尝试编写一个函数,如果一个字符串恰好包含一个子字符串的两个实例,则返回True
,如果不包含,则返回False
。
我遇到错误:
return' outside function
我觉得我已经很近了,但还是做不到,我很高兴能被指出正确的方向。 应该使用递归吗?
s = ("xeroxes")
exes = str(x)
count = 0
def has_two_X(s):
count = s.count(exes)
for exes in s:
count = +1
if count ==2:
return True
else:
return False
if __name__ == "__main__":
print("string has :",count.s(exes))
答案 0 :(得分:0)
如果在两个或多个子字符串实例中代码必须返回True,则可以创建一个字典,如果字典中是否存在值,则返回True。
mydict = {}
for letter in s:
if letter in mydict:
return True
else:
mydict[letter] = 0
return False #Since there is no substring (two substring can be formed only if it has two same letters in the string)
要确切地找到它是否有两个子字符串,我建议您使用相同的方法来维护字典和存在的子字符串计数。将所有子字符串/计数添加到字典中,这将花费O(n ^ 2)生成所有子字符串和大约O(n ^ 2)哈希映射内存。
构造哈希图后,如果恰好有两次出现子字符串,则可以遍历哈希图以返回True。