题解 | 在字符串中找出连续最长的数字串
在字符串中找出连续最长的数字串
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}")

