【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();//無奇數
	}
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章