最長迴文串(leetcode簡單篇四百零九題)
阿新 • • 發佈:2018-12-16
給定一個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的迴文串。
在構造過程中,請注意區分大小寫。比如 “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;
}