题解 | #在字符串中找出连续最长的数字串#

在字符串中找出连续最长的数字串

http://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec

while True:
    try:
        a = list(input())
        b = []
        c = []
        a.append('e') #在本来的字符串最后加一个字符,如果字符串的最后是一串的数字的话下面的判断会无法将这串数字加入b中
        count = 0
        for i in range(len(a)):
            if(a[i].isdigit()): #若是数字
                count += 1 #计数加1
                b.append(a[i]) #将这个数字加入b
            else: #遇到不是数字的那么记录连续数字中断
                c.append(b + [count]) #将找到的连续数字与连续数字的个数放入c
                b = [] #b和count清空
                count = 0
        c = sorted(c,key=lambda ele:ele[-1],reverse = True)  #按照连续数字字符串的长度从大到小排序
        d = []
        max_len = c[0][-1] #记录最长的长度
        for i in range(len(c)):
            if(c[i][-1] == max_len): #将所有的最长长度的字符串放到c中
                d.append(c[i])
        out_str = ''
        for i in range(len(d)):
            out_str = out_str + ''.join(d[i][:-1])  #将所有的最长数字字符串连到一起
        print(out_str + ',' + str(max_len)) #按要求输出
    except:
        break

华为机试题解(prod.by kedao) 文章被收录于专栏

华为实习机试题解

全部评论

相关推荐

评论
3
1
分享
牛客网
牛客企业服务