系列文章目录
最长连续方波
python 解法,最快时间复杂度,双指针,O(n):
'''
2023 Q2 200
最长连续方波
输入:
001010101010100001010
输出:
0101010101010
'''
def zuichangfangbo(s:str)->str:
ret=ans=''
step=prestep=''
for i in range(1,len(s)):
if s[i-1]=='0' and s[i]=='0' :
ret= ret if len(ret) > len(ans) else ans
ans = '0'
step=prestep=''
continue
if not prestep and not prestep==step:
continue
ans+=s[i]
if s[i]=='0':
step=ans.split('0')[-2]
if not prestep:
prestep=step
step=[]
elif prestep==step:
continue
else:
ans=''
if not ret or ret=='0':
return -1
else:
return ret
print(zuichangfangbo('001010101010100001010'))