给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama" 输出: true
示例 2:
输入: "race a car" 输出: false
思路:
用头尾指针,如果不是数字就l++,r--
题目说可以可以忽略字母的大小写。如果是判断是否相当,当都为小写字母时,如果不是直接return false;
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package javacode; 2 3 class 验证回文串 { 4 public boolean isPalindrome(String s) { 5 s = s.toLowerCase(); 6 char[] tem = s.toCharArray(); 7 int l=0,r=tem.length-1; 8 9 while(l<r) { 10 if(!Character.isLetterOrDigit(tem[l])) 11 l++; 12 else if(!Character.isLetterOrDigit(tem[r])) 13 r--; 14 else 15 { 16 if(Character.toLowerCase(tem[l]) == Character.toLowerCase(tem[r])) 17 { 18 l++; 19 r--; 20 } 21 else return false; 22 } 23 24 } 25 return true; 26 27 } 28 29 }