如果一个字符串恰好包含一个子字符串的两个实例,则返回“ True”;如果不包含,则返回“ False”

时间:2020-09-24 13:08:08

标签: python-3.x string function count

我正在尝试编写一个函数,如果一个字符串恰好包含一个子字符串的两个实例,则返回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))

1 个答案:

答案 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。