我有一个长度为1 <= |S| <= 100
和K (1 <= K <= 10)
此字符串包含digits < K
和问号。我想用digits < K
替换这些问号,没有两个相邻的数字相等。字符串是圆形的,因此它不能是这样的:1?1
或11?
。
结果字符串必须按字典顺序排列为最小字符串。
输入和输出示例
input:
K = 4
string = ?????
output:
01012
我尝试过一种贪婪的方法,但是对于一些未知的测试用例来说却失败了。我认为它需要一个dp方法,但无法弄清楚状态,纯粹的递归代码不适合及时。
dp方法的任何帮助,或者贪婪失败的棘手测试用例?
谢谢,
答案 0 :(得分:2)
如果你在字符串的一端有一个数字,那么贪心算法会给你正确的答案。
如果您的字符串以问号开头和结尾,则第一个字符(0或1)有2个可能性,对两个案例运行贪婪算法并采取最佳效果。
利高指出的错误答案:
贪婪有效但你必须从第一个问号开始,这个问号就在一个已知数字之后。
答案 1 :(得分:0)
它简单的回溯imo。为什么贪婪或动态复杂化。