LCR 018. 验证回文串 - 力扣(LeetCode)
题目描述
给定一个字符串 s
,验证 s
是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。
本题中,将空字符串定义为有效的 回文串 。
样例输入
示例 1:
输入: s = "A man, a plan, a canal: Panama" 输出: true 解释:"amanaplanacanalpanama" 是回文串
示例 2:
输入: s = "race a car" 输出: false 解释:"raceacar" 不是回文串
提示:
1 <= s.length <= 2 * 105
- 字符串
s
由 ASCII 字符组成
代码
class Solution {
public:bool isPalindrome(string s) {int i=0,j=s.size()-1;while(i<j){while (i < j && !isalnum(s[i])) i++; // 找到第一个字母或数字while (i < j && !isalnum(s[j])) j--; // 找到最后一个字母或数字if(tolower(s[i])==tolower(s[j])){i++;j--;}else{return false;}}return true;}
};