【
文字回文配列で最長のを見つけるために、構成された大文字と小文字の文字列下記のものを含む、与えられました。
建設プロセスでは、大文字と小文字を区別しますのでご注意ください。以下のような「Aaが」回文文字列として使用することはできません。
注:
文字列の長さを超える1010ではないと仮定。
例1:
入力:
"abccccdd"
出力:
7
説明:
私たちは最も長い文字列を作成することができますが回文「dccaccd」、その長さは7です。
出典:滞在ボタン(LeetCode)
リンクします。https://leetcode-cn.com/problems/longest-palindromeは
すべてのネットワークからの控除が著作権を保有。商業転載は、ソースを明記してください許可公式、非商用の転載をご連絡ください。
】
文字、パリンドロームは、当然のことながら、[128] = {0}ハッシュ文字列直接INT ARRを考慮し、バックは簡単です。
int longestPalindrome(char * s){
int len = strlen(s);
int i;
int retmax = 0;
int arr[128] = {0};
int flag = 0;
for (i = 0; i < len; i++) {
arr[s[i]]++;
}
for (i = 0; i < 128; i++) {
if(arr[i] % 2) {
retmax += arr[i] - 1;
flag = 1;
} else {
retmax += arr[i];
}
}
retmax = retmax + flag;
return retmax;
}