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 实现求满足条件的最长子串的长度

目录

题目

思路

考点

Code


题目

给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求:

1、 只包含1个字母(a~z, A~Z),其余必须是数字;

2、 字母可以在子串中的任意位置;

如果找不到满足要求的子串,如全是字母或全是数字,则返回-1。

输入描述:字符串(只包含字母和数字)

输出描述:子串的长度

示例1  输入输出示例仅供调试,后台判题数据一般不包含示例

输入

abC124ACb

输出

以上是关于Python 给定字符串 求最长同类型字段和长度的主要内容,如果未能解决你的问题,请参考以下文章

无重复字符的最长字串

华为OD机试真题 Python 实现求满足条件的最长子串的长度

大神!!求用python写一个程序,找出给定字符串s中按字母表顺序排列的最长子串!

【python】求两个字符串的公共字串?

sql server哪个字段类型可以保存最长文字

无重复字符的最长字串问题