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

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

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

一维动态规划,如果不希望遍历第二次,可以在第一次遍历的时候就构建result数组,不过python好像没必要=-=这么写着爽一点

s = input()


ord_0 = ord("0")
ord_9 = ord("9")
dp = [0] * (len(s) + 1)
# 这里dp的idx要后移一位
for idx, each in enumerate(s):
    if ord_0 <= ord(each) <= ord_9:
        dp[idx+1] = dp[idx] + 1
    else:
        dp[idx+1] = 0

result = []
max_len = max(dp)
for idx, each in enumerate(dp):
    if each == max_len:
        result.append(s[idx-max_len:idx])
print(f"{''.join(result)},{max_len}")

全部评论

相关推荐

2025-12-22 15:04
江西农业大学 Web前端
SaviorSu:直接说下学期可以请假,一般情况学校允许我26届,大三就直接去实习了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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