classSolution{public:intlongestPalindrome(string s){
vector<int>test(60,0);int ans =0;//记录最后输出的结果bool flag =false;//判断有没有出现奇数次的字母//统计每个字母出现的次数for(char e : s) test[e-'A']++;for(int i=0; i < test.size(); i++){//如果出现次数为偶数,则全部加上if(test[i]>0&& test[i]%2==0){
ans += test[i];}//如果为奇数,只能加上出现次数 - 1;elseif(test[i]>0&& test[i]%2==1){
flag =true;
ans += test[i]-1;}}if(flag)return ans +1;return ans;}};
题目题目链接思路签到题:先把每个字母出现的次数统计一下,然后依次遍历每个字母;如果当前字母的数量为偶数,则总数应加上这个字母出现的次数;如果当前字母的数量为奇数,则总数加上这个字母出现的次数-1;并设置flag为true,代表有奇数次的字母,最后输出时需要加一。知识点A和z间还有其他的非字母字符,不要忘记代码class Solution {public: int ...