统计字符串中字符可构成回文字符串的最大长度
int longestPalindrome(string s) {
unordered_map<char, int> table;
for (int i = 0; i<s.size(); i++)
{
if (table.find(s[i]) == table.end()) // not found
table[s[i]] = 1;
else
table[s[i]]++;
}
int ans = 0;
int flag = 0;
unordered_map<char, int>::iterator it = table.begin();
for (; it != table.end(); it++)
{
if (it->second % 2 == 0)
ans += it->second; //数目若为偶数,必可全部使用
else
{
ans += (it->second - 1);
flag = 1; //若为奇数,取偶数数目
}
}
return ans + flag;
}
计算字符串最长回文子串
本文介绍了一种计算给定字符串中能组成回文字符串的最大长度的方法。通过使用哈希表统计每个字符出现的次数,可以确定哪些字符可用于构成回文串。如果存在奇数次字符,则最多只能有一个奇数次字符位于回文串中心。
362

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



