Given a string which consists of lowercase or uppercase letters, find the length of the longest palindromes that can be built with those letters.
This is case sensitive, for example “Aa” is not considered a palindrome here.
Note:
Assume the length of given string will not exceed 1,010.
Example:
Input:
“abccccdd”
Output:
7
Explanation:
One longest palindrome that can be built is “dccaccd”, whose length is 7.
class Solution {
public:
int longestPalindrome(string s) {
int s_odd = 0;
vector<int>vec(52,0);
for(int i=0;i<s.size();++i)
{
if(s[i]<='z'&&s[i]>='a')
vec[s[i]-'a']++;
else
vec[s[i]-'A'+26]++;
}
for(int i=0;i<vec.size();++i)
{
if(vec[i]%2)
s_odd++;
}
return s_odd>0?s.size()-s_odd+1:s.size();
}
};
本文介绍了一种算法,该算法接收一个由大小写字母组成的字符串,并找出能构建的最长回文子串的长度。案例分析展示了如何从给定字符串中挑选字符形成回文子串,如abccccdd可以构建出长度为7的回文子串dccaccd。
427

被折叠的 条评论
为什么被折叠?



