題目描述:
給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。
在構造過程中,請注意區分大小寫。比如"aa"
不能當做乙個回文字串。
注意:
假設字串的長度不會超過 1010。
示例 1:
輸入:
"abccccdd"
輸出:7
解釋:我們可以構造的最長的回文串是"dccaccd", 它的長度是 7。
(這次複製題目過來怎麼沒有版權資訊)
所以從之後開始,對於第一遍刷的題目,大概率會先去看看解題思路。
本題的解題思路借鑑於他人。
解題思路:
記錄所有字母出現的次數;
對於成對的字母,可以直接用於回文串;
單個的字母,可以用於正中間的位置。
錯誤點:
一開始做的時候,直接判斷字母的奇偶數量,把字母出現2n+1(n>0)次的情況和字母只出現1次的情況歸到了一起,導致錯誤,多做一次判斷就好了。
定義變數忘記初始化了,導致最後計算結果的時候出了問題。
int longestpalindrome(char * s)
; int i = 0;
do else
i++;
} while (s[i] != '\0');
int sum_even = 0;
int sum_odd = 0;
for (char k = 0; k < 52; k++)
else if (hsah_table[k] / 2 > 0)
else
}if (sum_odd > 0)
else
}
2020/3/19 409 最長回文串
給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串。注意 假設字串的長度不會超過 1010。示例 1 輸入 abccccdd 輸出 7 解釋 我們可以構造的最長的回文串是 dccaccd 它的長度是 7。回文串...
409 最長回文串
題目 給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串。注意 假設字串的長度不會超過 1010。示例 1 輸入 abccccdd 輸出 7 解釋 我們可以構造的最長的回文串是 dccaccd 它的長度是 7。...
409 最長回文串
給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串。注意 假設字串的長度不會超過 1010。示例 1 輸入 abccccdd 輸出 7 解釋 我們可以構造的最長的回文串是 dccaccd 它的長度是 7。方法 ...