2024-09-30 10:40:16 发布
网友
我想看看我能不能在一个字符串中找到两个连续的字母而不重叠。 例如:如果字符串中有“HP”和“PH”,则回答“是”,否则回答“否”。你知道吗
例如:
input -----> PHHP output ----> YES
或:
input -----> HPPH output ----> YES
以及:
input -----> PHP output ----> NO
input -----> PHAP output ----> NO
您可以使用re。你知道吗
re
演示:
import re def validate(string): return 'YES' if re.search(r'(PH.*HP)|(HP.*PH)', string) else 'NO' inputs = ['PHHP', 'HPPH', 'PHP', 'PHAP'] for inp in inputs: print(inp, validate(inp))
输出:
PHHP YES HPPH YES PHP NO PHAP NO
我想这应该仍然适用于优化的范围。你知道吗
s = 'phhp' def validate(): for i in range(len(s)): if len(s[i:i+2]) != 2: break if 'ph' == s[i:i+2]: if 'hp' in s[0:i] or 'hp' in s[i+2:i+4]: return True return False print ('Found' if validate() else 'Not Found')
尝试检查'hp'是否在s中,如果是,则用' '替换它。现在检查'ph'是否在s中,如果是返回'YES':
'hp'
s
' '
'ph'
'YES'
def func(s): s = s.lower() if 'hp' in s: s = s.replace('hp',' ') if 'ph' in s: return 'YES' else: return 'NO' else: return 'NO' print(func('HPHP'))
NO
您可以使用
re
。你知道吗演示:
输出:
我想这应该仍然适用于优化的范围。你知道吗
尝试检查
'hp'
是否在s
中,如果是,则用' '
替换它。现在检查'ph'
是否在s
中,如果是返回'YES'
:输出:
相关问题 更多 >
编程相关推荐