【LeetCode】409. 最长回文串

思路

若要形成最长的回文串,则回文串中只会出现1次单个字符,因此只需统计字符串中有多少个字符其数目为奇数,s.size()-n个为奇数个数的字符+1即为最长回文串
如果字符串没有出现奇数个数目的字符,则s.size()即为最长回文串

代码

class Solution {
public:
	int longestPalindrome(string s) {
		unordered_map<char, int> sMap;
		for (char c:s)
		{
			sMap[c]++;
		}
		int oddNum = 0;
		for (pair<char,int> it:sMap)
		{
			if (it.second % 2 == 1) oddNum++;
		}
		if (oddNum > 0)  return s.size() - oddNum + 1;//s.size()-为奇数个的字符数目+1
		else return s.size();//无奇数
	}
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章