String 字符串缩减

String 字符串缩减,string,algorithm,String,Algorithm,也许现在这是一个众所周知的问题: 考虑任何字符串S,只包含3个字符(a,b,c)。您可以对这些字符串执行此缩减操作:“将两个连续的不同字符替换为第三个字符,如'ab'可以替换为'c','ac'可以替换为'b'。”此操作可以缩减多少 答案总是(1,2,string.length) string.length如果所有字符都相同, 2 iff计数(a)=计数(b)=S中的计数(c)。 1否则。 但我无法证明这一点 任何建议都会非常有用。你可以通过归纳S的长度来证明这类索赔 但是你必须得到正确的索赔,而

也许现在这是一个众所周知的问题: 考虑任何字符串S,只包含3个字符(a,b,c)。您可以对这些字符串执行此缩减操作:“将两个连续的不同字符替换为第三个字符,如'ab'可以替换为'c','ac'可以替换为'b'。”此操作可以缩减多少

答案总是(1,2,string.length)

string.length如果所有字符都相同, 2 iff计数(a)=计数(b)=S中的计数(c)。 1否则。 但我无法证明这一点


任何建议都会非常有用。

你可以通过归纳S的长度来证明这类索赔

但是你必须得到正确的索赔,而你在这里没有。你的要求是

如果所有字符都相同,答案是| S |;如果S中的计数(a)=计数(b)=计数(c),答案是2,否则答案是1

考虑字符串
aabb
。您的声明说,这可以减少到长度1,但实际上它只能减少到长度2:可能的减少序列是
aabb
→ <代码>acb→ <代码>bb和
aabb
→ <代码>acb→ <代码>aa

如果索赔正确,你应该能够完成证明