好久沒發每日leetcode文了
反正找到工作了,也不太想寫了
不過我還是想騙P幣
409. Longest Palindrome
給一個字串
請回傳用這個字串裡的字元,可以組成的最常回文的長度
思路:
先記錄每個字母出現的次數
偶數直接加上去
奇數扣掉再加
最後看總和有沒有超過字串長度
沒有再加1
c code:
int longestPalindrome(char* s) {
int rec[52]={},n=strlen(s),ans=0;
for (int i=0;i<n;i++){
if (s[i]>='a'){
rec[s[i]-'a']++;
}else{
rec[s[i]-'A'+26]++;
}
}
for (int i=0;i<52;i++){
if ((rec[i]&1)==0){
ans+=rec[i];
}else{
ans+=(rec[i]-1);
}
}
if (ans+1<=n){
return ans+1;
}
return ans;
}