2016-03-04 241 views
-1

給出一個包含小寫字母的奇數長度的字符串。還給出該字符串只包含一個字符的奇數次和其他字符偶數次。您必須說可以刪除任何一個c字符,並且該字符串變爲兩個相等字符串的串聯。 例如:aba作爲刪除b字符串變成「aa」這是串聯的「a」+「a」形成字符串級聯

任何人都可以幫助如何解決這個問題?

回答

0

有3個選項可以刪除角色。

  • 角色在中間。因此,只要檢查前n/2個字符是否與最後n/2個字符匹配。

  • 該角色在下半場。所以最初的n/2個字符已經很好了。開始檢查下一個字符。如果你看到一個不匹配跳過它(這是要刪除的字符)。如果你看到第二個不匹配,那麼這不是解決方案。

  • 最後的角色是在上半場。與上一個選項類似,最後的n/2個字符很好,因此請檢查第一個n/2 +1個字符。再次,如果有一個不匹配跳過它,但如果有兩個,那麼這不是一個解決方案。

因此,請嘗試所有3個選項,看看是否有能夠找到解決方案。複雜性應該是O(N),因爲您只需要幾次線性穿過字符串。