R_WH 2020-08-19 19:31 采纳率: 0%
浏览 72

最大回文数疑解题疑问

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;
}
};

  • 写回答

2条回答

  • 关注
    评论

报告相同问题?