题目
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
思路
对撞指针思想
java实现
class Solution {
public boolean isPalindrome(String s) {
s = s.replaceAll("[^a-zA-Z0-9]", "");
int lo=0, hi=s.length()-1;
while(lo<=hi){
String s_lo = String.valueOf(s.charAt(lo)).toLowerCase();
String s_hi = String.valueOf(s.charAt(hi)).toLowerCase();
if(s_lo.equals(s_hi)){
lo++;
hi--;
}
else
return false;
}
return true;
}
}
Java中String相关函数
- 取字符串中的第i个字符
char c = s.charAt(i);
- 大小写转换
s.toLowerCase(); s.toUpperCase();
- char转换为String
String string = String.valueOf(char);