‘’’
给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求:
1、 只包含1个字母(a~z, A~Z),其余必须是数字;
2、 字母可以在子串中的任意位置;
如果找不到满足要求的子串,如全是字母或全是数字,则返回-1。
输入描述
字符串(只包含字母和数字)
输出描述
子串的长度
‘’’
def tiaojianzuichangzichuan(s):
import re
if not (re.search('[0-9]',s) and re.search('[a-zA-Z]',s)):
return -1
before=''
middle=''
after=''
ans=0
status=1
if s[0].isdigit():
before=s[0]
else:
middle=s[0]
for i in range(1,len(s)):
if not s[i].isdigit() and not s[i-1].isdigit():
ans=max(ans,len(before+middle+after))
status=1
middle=s[i]
before=''
after=''
elif not s[i].isdigit():
if not middle:
middle+=s[i]
if i==len(s)-1:
ans = max(ans, len(before + middle + after))
else:
ans=max(ans,len(before+middle+after))
middle=s[i]
before=after
after=''
elif s[i].isdigit():
if not middle:
before+=s[i]
else:
after+=s[i]
print(before,middle,after,ans)
if s[-1].isdigit():
ans = max(ans, len(before + middle + after))
return ans
print(tiaojianzuichangzichuan('wwww22e222222222222233333333o343454oo233333333545l23'))