1. 程式人生 > >最長迴文串(leetcode簡單篇四百零九題)

最長迴文串(leetcode簡單篇四百零九題)

給定一個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的迴文串。

在構造過程中,請注意區分大小寫。比如 “Aa” 不能當做一個迴文字串。

注意:
假設字串的長度不會超過 1010。

示例 1:

輸入:
“abccccdd”

輸出:
7

解釋:
我們可以構造的最長的迴文串是"dccaccd", 它的長度是 7。

int longestPalindrome(char* s) {
    int maxn = 'z' - 'A' + 1;
    int arr[100] = {0};
    int max = 0;
int len = strlen(s); for(int i = 0; i < len; i++) { arr[(s[i] - 'A')]++; } bool flag = false; for(int j = 0; j < maxn; j++) { if(arr[j] != 0) { if(arr[j]%2 == 0) { max += arr[j]; } else
{ max += arr[j] -1; flag = true; } } } return flag?max+1:max; }