给定长度为N的字符串S,返回一个字符串,该字符串是将'?'字符串S中的每个字符替换为一个'a'或一个'b'字符的结果,并且不包含三个相同的连续字母(换句话说,处理后的字符串中'aaa'不可能'bbb'出现这两个字母)。
例子:
Given S="a?bb", output= "aabb"
Given S="??abb", output= "ababb" or "bbabb" or "baabb"
Given S="a?b?aa", output= "aabbaa"
Run Code Online (Sandbox Code Playgroud)
1<=n<=500000
我使用回溯解决了这个问题,但是我的解决方案很慢并且不适用于更大的 N 值,有更好的方法吗?