已知一个只包括大小写字符的字符串,求用该字符串中的字符可以生成的最长回文字符串的长度。
例如 s=“abccccddaa”,可生成的最长回文字符串长度为9,如dccaaaccd,adccbccda,acdcacdca等,都是正确的。
- 利用字符哈希方法,统计字符串中所有的字符数量;
- 设置最长回文串偶数字符长度为max_length=0;
- 设置是否有中心点标记flag=0;
- 遍历每一个字符,字符数为count,若count为偶数,max_length+=count;若count为奇数,max_length+=count-1, flag=1;
- 最终最长回文子串长度: max_length+flag。
#include <string>
class Solution
{
public:
Solution(