现在可能是一个众所周知的问题: 考虑任何字符串S,只包含3个字符(a,b,c)。您可以对这些字符串执行此缩减操作:“将第二个替换两个连续的不同字符,例如'ab',可以替换为'c',将'ac'替换为'b'。”我们可以通过这种操作减少多少?
答案总是(1,2,string.length)。
string.length如果所有字符相同, 2 iff count(a)= count(b)= count(c)in S. 否则为1。 但我无法证明这一点。
任何建议都会非常有用。
答案 0 :(得分:0)
您可以通过归纳 S 来证明此类索赔。
但你必须得到正确的要求,而你却没有。你的主张是
答案是| S |如果所有字符都相同,如果count(a)= count(b)= S 中的count(c),则为2,否则为1。
考虑字符串aabb
。您的声明可以将其缩短为1,但事实上它只能缩短为2:可能的缩减序列为aabb
→acb
→bb
和{{1 →aabb
→acb
。
获得正确的声明,您应该能够完成证明。