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

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

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

方法:滑动窗口
见代码
while 1:
    try:
        def findmaxlennums(nums):
            left,right = 0,0
            global max_l
            while left<len(nums):
                if nums[left].isdigit():#左指针处是数字的话,扩展右边界
                    while right<len(nums) and nums[right].isdigit():#直到右边界越界或者不再是数字则退出
                        right+=1
                    if right-left>=max_l:#窗口长度大于max_l的话更新max_l,res添加字符段
                        max_l = right-left
                        res.append(nums[left:right])
                    left = right    #更新左指针与右指针重合,继续滑动
                else:                     #如果左指针不是数字,左右指针全部右移
                    left+=1
                    right+=1
            return

        nums = input()
        res,ans = [],[]
        max_l = 0
        findmaxlennums(nums)
        for i in res:
            if len(i)==max_l:
                ans.append(i)
        print('{},{}'.format(''.join(ans),max_l))
    except:
        break
            


全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:35
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务