2016-10-15 26 views
0

該問題指出通過替換字符串中的字符將字符串轉換爲迴文。 形成的迴文串的長度必須與原始字符串相同。我怎樣才能計算出最小號碼。替換件來轉換一個字符串,使迴文?

例如:一個字符串ABCDE,轉換爲迴文,

分鐘替換:2

ABCDE - > ABCBA

而如果它需要特定的子串被部分什麼生成的迴文串?

實施例:字符串要求子串「茶」要產生的字符串的一部分

然後ABCDEF - > aettea

分鐘替換:4

回答

0

迴文根據定義是在它們的中心的每一側都點。

對於一個奇數字母的字符串,字符串的最大長度減去1併除以2得到要替換的字符數。

(length - 1)/2 = #charsReplaced 

對於偶數字符串,替換字符的最大長度是長度除以2。

length/2 = #charsReplaced 

查找字符的最小數量,以取代將需要由每個字符在字符串中讀取,在串上的中心點的每一側映射字符,並確定哪些是一樣的。對於每一方都有類似的字母(例如,abcbe比最大值小1),可以將該數量與最大值分開。

0

這是一個邏輯問題,但我認爲你可以使用這個算法我設計計算它:

  • 讀取字符串前:ABCDE
  • 獲得上半年(AB)
  • 檢查其他的反如果一半,你的前半部分匹配(AB是等於去?)
  • 算不平等字符
  • 答案= 2
  • 例如:radaa
    firsthalf:RA
    的另一半 檢查反向:AA
    匹配,如果相等:RA = AA
    數不等的字符數:1
    取代:一個= R
    那麼你有你的結果:雷達, 1個字符缺陷。

    相關問題