验证回文串

来源:LeetCode

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true
解释:"amanaplanacanalpanama" 是回文串

思路:

1.正则表达式去除符号
2.统一大小写
3.双指针匹配
4.输入的字符串为空
代码
public class YanZhenHuiwen {
/**
* 验证回文串
* 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
* 说明:本题中,我们将空字符串定义为有效的回文串。
* 示例 1:
* 输入: "A man, a plan, a canal: Panama"
* 输出: true
* @param s
* @return
*/
public boolean isPalindrome(String s) {
// 1.正则表达式去除符号
String s1 = s.replaceAll("[^A-Za-z0-9]", "");
// 2.统一大小写
String s2 = s1.toLowerCase();
// 3.双指针匹配
int i = 0;
int j = s2.length() - 1;
boolean flag = false;
while (i <= j) {
if (s2.charAt(i) != s2.charAt(j)) {
return flag = false;
}
i++;
j--;
flag = true;
}
// 输入的字符串为空时,即i为0,j为-1
if(i>j){
flag=true;
}
System.out.println(flag);
return flag;
}

public static void main(String[] args) {
YanZhenHuiwen huiwen = new YanZhenHuiwen();
String str = "race a car";
huiwen.isPalindrome(str);
}
}
posted @ 2021-12-07 13:58  Wavve  阅读(60)  评论(0)    收藏  举报