题目描述
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: “A man, a plan, a canal: Panama”
输出: true
示例 2:
输入: “race a car”
输出: false
思路:
先用replaceAll()函数和正则表达式将字符串中除了字母和数字以外的字符都去除,用toLowerCase()函数将字符串转为全小写。
用i和j两个下标分别从收尾两端遍历比较,直到i>j。若在这个过程中两字符不相同,则返回false。否则循环结束返回true。
class Solution {
public boolean isPalindrome(String s) {
s=s.replaceAll("[^a-z^A-Z^0-9]", "").toLowerCase();
for(int i=0,j=s.length()-1;i<=j;i++,j--) {
if(s.charAt(i)!=s.charAt(j)) {
return false;
}
}
return true;
}
}
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-palindrome