验证回文字符串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama" 输出: true
示例 2:
输入: "race a car" 输出: false
解题思路:
首先对字符串遍历,将所有的字母和数字存入一个ArrayList中
对ArrayList进行遍历,首尾相对应的字母不相同则返回false,全部都相同则返回true
代码如下:
public static boolean isPalindrome(String s) {
char [] c= s.toCharArray();
ArrayList<Character> arr= new ArrayList<>();
for (int i = 0; i < c.length; i++) {//对传入的字符串进行遍历
//如果是字母或者数字就存入List中
if( c[i]>='a' && c[i]<='z'){
arr.add(s.charAt(i));
}
if(c[i]>='A' && c[i]<='Z'){
arr.add((char) (s.charAt(i)+32));
}
if(c[i]>='0' && c[i]<='9'){
arr.add((char)s.charAt(i));
}
}
for (int i = 0,j=arr.size()-1; i<j ; i++,j--) { //对List遍历
//判断首尾相对应的字符是否相等
System.out.println(arr.get(i));
if(arr.get(i)!=arr.get(j)){
return false; //如果出现不相等则返回false
}
}
return true;// 全部都相等返回true
}