美文网首页
【动态规划】非降序最长子串

【动态规划】非降序最长子串

作者: yuanCruise | 来源:发表于2018-09-13 11:36 被阅读19次

在这个问题中定义什么是状态很重要。
举例来说:dp[4]:表示以输入字符串中第5个字符为结束的字符串中的最长非降序子串的长度。

s = input()
dp = [0 for i in range(len(s))] #初始化状态矩阵
dp[0] = 1  #第一个状态为1
maxL = dp[0]

for i in range(len(s)):
  for j in range(i):
    if s[i] >= s[j]:    #状态转移条件
      dp[i] = max(maxL, dp[j]+1)  #状态转移方程
      maxL = dp[i]
print maxL

相关文章

网友评论

      本文标题:【动态规划】非降序最长子串

      本文链接:https://www.haomeiwen.com/subject/bmhwgftx.html