如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
字母和数字都属于字母数字字符。
给你一个字符串 s
,如果它是 回文串 ,返回 true
;否则,返回 false
。
示例 1:
输入: s = "A man, a plan, a canal: Panama" 输出:true 解释:"amanaplanacanalpanama" 是回文串。
示例 2:
输入:s = "race a car" 输出:false 解释:"raceacar" 不是回文串。
class Solution { public: //先转换字符串大小写同一 bool isPalindrome(string s){ string s1; for(char ch : s){ if(isalnum(ch)){//判断是否是字符串 判断字符变量c是否为字母或数字,若是则返回非零,否则返回零。 s1 += tolower(ch);//转化小写 } } int n = s1.size(); int left = 0,right = n-1; while(left<right){ if(s1[left] != s1[right]){ return false; } left++; right--; } return true; } };