409. Longest Palindrome (Easy)
1.問題
給予一個由大小寫字母組成的string, 找出可以組成的最長迴文字串

2.想法
統計每個字母出現的次數
出現一次者
出現兩次者
將字元轉為int來統計
vector<int> sv(59, 0);
for(int i = 0 ; i < (int)s.size(); i++){
sv[(int)(s[i] - 'A')]++;
}
3.程式碼
class Solution {
public:
int longestPalindrome(string s) {
vector<int> sv(59, 0);
for(int i = 0 ; i < (int)s.size(); i++){
sv[(int)(s[i] - 'A')]++;
}
int pairCount = 0;
int singleCount = 0;
for(int i = 0 ; i < 59; i++){
while(sv[i] != 0 && sv[i] != 1 ){
sv[i] = sv[i] - 2;
pairCount += 2;
}
if(sv[i] == 1){
singleCount++;
}
}
return singleCount > 0 ? pairCount + 1 : pairCount;
}
};
4.Performance

Last updated