合法字符串 【动态规划】

您所在的位置:网站首页 1的字符是多少 合法字符串 【动态规划】

合法字符串 【动态规划】

2023-03-03 20:35| 来源: 网络整理| 查看: 265

合法字符串 【动态规划】 原创

mb640163eb338d0 2023-03-03 14:00:23 博主文章分类:----------DP ©著作权

文章标签 字符串 递推 时间复杂度 文章分类 Python 后端开发

©著作权归作者所有:来自51CTO博客作者mb640163eb338d0的原创作品,请联系作者获取转载授权,否则将追究法律责任

字符串只有可能有A、B、C三个字母组成,如果任何紧邻的三个字母相同,就非法。求长度为n的合法字符串有多少个?比如: ABBBCA是非法,ACCBCCA是合法的。

动态规划的思路——真的要枚举么? dp[i][0] : 长度为i的、最后两位不同的合法串的个数 dp[i][1]: 长度为 i的、最后两位相同的合法串的个数 递推: dp[i][0] = (dp[i-1][0] * 2 + dp[i-1][1] * 2) dp[i][1] = dp[i-1][0]

初值 dp[1][0] = 3, dp[1][1] = 0 结果 dp[n][0] + dp[n][1] 空间优化 dp[i][0,1]只与dp[i-1][0,1]相关,可以省掉高维 时间复杂度 O(n)

收藏 评论 分享 举报

上一篇:LightOJ 1422 Halloween Costumes 【区间DP】

下一篇:poj 2955 Brackets【区间DP】



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3