力扣-回文串
今天碰到了一个关于回文串的问题:判断一个字符串重新排列后能否形成一个回文串。
个人初始思路:统计每种字符在字符串中的出现次数,最后如果次数为奇数的多于一个,则false。但是用于存储字符串出现次数的数组不能用s.length来构造,因为是变量。
解答思路:通过使用unordered_map<char,int>构造一个map来存储,然后判断。
class Solution { public: bool canPermutePalindrome(string s) { unordered_map<char,int> map; for(char c:s){ map[c]++; } int count=0; for(auto &i:map){ if(i.second%2==1) { count++; } if(count==2) { return false; } } return true; } };
补充:也可以先sort一下,再判断。(时间复杂度会提高)
浙公网安备 33010602011771号