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

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

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

思路:

动态规划
维护长度为n+1的dp数组
初始化为0 dp[i]代表以i为结尾的子字符串最长的连续数字串长度
状态转移方程为:
dp[index] = dp[index] + 1 if dp[index].isdigit()

代码:

def longestSub(s):
    n = len(s)
    dp = [0] * (n + 1)
    for index in range(n):
        if s[index].isdigit():
            dp[index + 1] = dp[index] + 1
    max_len = max(dp)
    res = ""
    for index in range(n+1):
        if dp[index] == max_len:
            res +=  s[index - dp[index]:index]
    return [res, str(max_len)]

while True:
    try:
        s = input()
        res = longestSub(s)
        print(','.join(res))
    except:
        break

全部评论

相关推荐

11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
09-27 14:42
已编辑
浙江大学 Java
未来未临:把浙大放大加粗就行
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务