leetcode 问题
问题:
给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。
在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。
我先统计每个字符出现的次数,再将偶数次数累加,最后加上最大的奇数次数,代码如下,未通过。想请教一下有何问题?
class Solution {
public:
int longestPalindrome(string s) {
int hash[52]={0},ans=0,alpha=0;
for(int i=0;i {
if(s[i]>='a' && s[i]<='z')
hash[s[i]-'a']++;
else if(s[i]>='A')
hash[s[i]-'A'+26]++;
}
for(int j=0;j {
if(hash[j]%2==0 && hash[j]>0) ans+=hash[j];
else if(hash[j]%2!=0 && hash[j]>=alpha) alpha=hash[j];
}
return ans+alpha;
}
};