2016-03-04 67 views
-1

给出一个包含小写字母的奇数长度的字符串。还给出该字符串只包含一个字符的奇数次和其他字符偶数次。您必须说可以删除任何一个c字符,并且该字符串变为两个相等字符串的串联。 例如:aba作为删除b字符串变成“aa”这是串联的“a”+“a”形成字符串级联

任何人都可以帮助如何解决这个问题?

回答

0

有3个选项可以删除角色。

  • 角色在中间。因此,只要检查前n/2个字符是否与最后n/2个字符匹配。

  • 该角色在下半场。所以最初的n/2个字符已经很好了。开始检查下一个字符。如果你看到一个不匹配跳过它(这是要删除的字符)。如果你看到第二个不匹配,那么这不是解决方案。

  • 最后的角色是在上半场。与上一个选项类似,最后的n/2个字符很好,因此请检查第一个n/2 +1个字符。再次,如果有一个不匹配跳过它,但如果有两个,那么这不是一个解决方案。

因此,请尝试所有3个选项,看看是否有能够找到解决方案。复杂性应该是O(N),因为您只需要几次线性穿过字符串。