Python 给定字符串 求最长同类型字段和长度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 给定字符串 求最长同类型字段和长度相关的知识,希望对你有一定的参考价值。
结果应该是这样 output=123058789,9
"abcd1234ed125ss123058789"
于python3.3说
def finds(s1, s2):
i = 0
count = 0
while(i<len(s2) - len(s1) + 1):
if(s1 == s2[i:i+3]):
count+=1
i+=1
return count
s1 = \'sos\'
s2 = \'asdlbsosososkqio\'
print(finds(s1, s2))
emmm 我的意思是 给定指定字符串 "abcd1234ed125ss123058789" 然后得吧中间同类型最长子串的取出来 结果应该是 把123058789 取出来
参考技术A ## 其实代码可以写得更容易懂一点,但我懒## 这样的结构好处是结束循环以后不用看临时字串了
## 输入
s = "abcd1234ed125ss123058789"
last = top_s = s[0]
top_len = 0
tmp = ""
tmp_len = 0
for c in s:
## 布尔型,true表示当前字符类型和前面一样
isSame = (c.isalpha() and last.isalpha()) or (c.isdigit() and last.isdigit())
## 如果和前面类型一样,那临时字串添加一个字符
if isSame:
tmp += c
tmp_len+=1
## 如果有超过暂时最长字串的话,更新最长字串和最长字串长度
if tmp_len > top_len:
top_len = tmp_len
top_s = tmp
## 如果和前面类型不同,临时字串变成当前字符,临时字串长度初始为1
if not isSame:
tmp = c
tmp_len = 1
last = c
print("output = %s, %d"%(top_s, tmp_len)) 参考技术B s="abcd1234ed125ss123058789"
s1=s2=""
tage=0
for i in s:
if ord(i)>=97 and tage==0:
s1+=i
s2=""
else:
try:
if eval(i)==int(i):
tage=1
s2+=i
## if len(s2)>=len(s1):
## s1=""
except:
tage=0
if len(s2)>=len(s1):
s1=""
s1+=i
if len(s2)>len(s1):
print(s2,len(s2))
else:
print(s1,len(s1)) 参考技术C 怨情(李白) 参考技术D 本回答被提问者采纳
华为OD机试真题 Python 实现求满足条件的最长子串的长度
目录
题目
给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求:
1、 只包含1个字母(a~z, A~Z),其余必须是数字;
2、 字母可以在子串中的任意位置;
如果找不到满足要求的子串,如全是字母或全是数字,则返回-1。
输入描述:字符串(只包含字母和数字)
输出描述:子串的长度
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
abC124ACb
输出
以上是关于Python 给定字符串 求最长同类型字段和长度的主要内容,如果未能解决你的问题,请参考以下文章
华为OD机试真题 Python 实现求满足条件的最长子串的长度