【发布时间】:2018-06-30 05:25:07
【问题描述】:
我在动态规划中有这些问题,我需要提供一个基于动态规划的解决方案:
我们有长度为 n 的字符串,并且只包含 {A,B,C} 字符。字符串只有在连续不包含 3 个 A 并且最多包含一个 'B' 时才是“赢家”。 例子: 有 43 个长度为 4 的“获胜者”字符串。 我需要建议一种算法来计算长度为 n 的“获胜”字符串的数量。它需要以 O(n) 复杂度运行。
到目前为止我想到的是: 3个参数:n-当前字符串的长度,bCount=1,aCount=2。 在每次迭代中,n 减 1。如果我们使用 b,则 bCount 减 1。如果我们使用 A,则 aCount 减 1,但如果插入了任何其他字符,则它初始化为 2。
我需要把它正式和明确,希望你能帮助我填补空白,使解决方案正式。
我真的很努力解决它,如果有人能帮助我,我将非常感激。
提前谢谢你。
【问题讨论】:
标签: algorithm dynamic dynamic-programming