判断题目给出的字符串是不是回文,仅考虑字符串中的字母字符和数字字符,并且忽略大小写
例如:"A man, a plan, a canal: Panama"是回文
"race a car"不是回文
注意:
你有没有考虑过字符串可能为空?这是面试时应该提出的一个好问题。
针对这个问题,我们定义空字符串是回文
import java.util.*;
public class Solution {
/**
*
* @param s string字符串
* @return bool布尔型
*/
public boolean isPalindrome (String s) {
int i=0;
int j=s.length()-1;
while(i<j){
while(i<j&& !islettternum(s.charAt(i))) i++;
while(i<j&& !islettternum(s.charAt(j))) j--;
//判断是否小写
if(i<j&& Character.toLowerCase(s.charAt(i))!=Character.toLowerCase(s.charAt(j))) return false;
i++;
j--;
}
return true;
}
public boolean islettternum(char i){
if(i>='0'&&i<='9' ||i>='a'&&i<='z'||i>='A'&&i<='Z') return true;
return false;
}
}