你可以使用正則表達式替換的操作技巧。
>>> def guess(s):
out = re.findall(r'([a-z])\1{2,}|([a-z])\2', s)
if out and out[0][1]:
return True
return False
>>> k = ['abcdeefg', 'abcdeeefg']
>>> [guess(i) for i in k]
[True, False]
>>>
或
>>> def guess(s):
out = re.findall(r'([a-z])\1{2,}|([a-z])\2', s)
if out and out[0][1]:
return out[0][1]
return False
>>> k = '23413e4abcee'
>>> k.count(guess(k)) == 2
False
>>> k = '234134abcee'
>>> k.count(guess(k)) == 2
True
>>>
如果你想獲得像其他的answere輸出,那麼在這裏你走,
>>> def guess(s):
out = re.findall(r'([a-z])\1{2,}|([a-z])\2', s)
if out:
return [y+y for x,y in out if y]
return []
>>> guess("abbbcbbdddeffgggg")
['bb', 'ff']
>>>
如果它可以幫助你想想......在後者的例子中模式匹配字符串的'eef'部分 – donkopotamus
如果輸入是'acedeefg',預期的輸出是什麼? –
謝謝@donkopotamus。我同意,這是匹配eef部分。我希望它只匹配abcdeefg,而不匹配 –