1 #include"iostream" 2 using namespace std; 3 4 class Solution { 5 public: 6 int longestPalindrome(string s) { 7 int longest=0; 8 int record[128] = { 0 }; 9 int flag = 0; 10 for (int i = 0; i < s.size(); i++) { 11 record[s[i]]++; 12 } 13 for (int i = 0; i < 128; i++) { 14 if (record[i] % 2 == 0) { 15 longest += record[i]; 16 } 17 else if (flag == 0) { 18 longest = longest + record[i]; 19 flag = 1; 20 } 21 else 22 { 23 longest = longest + record[i] - 1; 24 } 25 } 26 return longest+1; 27 } 28 }; 29 30 31 //测试 32 int main() 33 { 34 string s = "abccccdd"; 35 Solution s1; 36 int n=s1.longestPalindrome(s); 37 cout << "字符串:" << s << "的最长回文数为:" << n << endl; 38 system("pause"); 39 }
原文:https://www.cnblogs.com/ccllcc/p/12566353.html