回文串:
一个正读和反读都一样的字符串,如"level"
判断一个字符串是否是回文串的方法:
双指针,i指向字符串s头部,j指向字符串s尾部
若s[i] == s[j],则i++,j–,直到i >= j则为回文串
若s[i] != s[j],则不为回文串
代码实现:
class Solution {
public:
bool isPalindrome(string str) {
while (i < j) {
if(str[i] != str[j]) {
return false;
}
i++;
j--;
}
return true;
}
};
判断一个字符串能否构成回文串的方法:
哈希表存储字符串中每一个字符出现的次数
若不超过一个字符的出现次数为奇数次,则能构成回文串
否则不能构成回文串
代码实现:
class Solution {
public:
bool isPalindrome(string str) {
map<char,int> mp;
for(int i