题目:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"输出: true
示例 2:
输入: "race a car"输出: false
解题:
class Solution { public boolean isPalindrome(String s) { for (int i = 0, j = s.length() - 1; i < j; ) { char ic = s.charAt(i); char jc = s.charAt(j); if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') { ic += ' '; //‘ ’的ASCII码为32,即大写转小写 } if (s.charAt(j) >= 'A' && s.charAt(j) <= 'Z') { jc += ' '; } if (!(ic >= 'a' && ic <= 'z' || ic >= '0' && ic <= '9')) { i++; continue; } if (!(jc >= 'a' && jc <= 'z' || jc >= '0' && jc <= '9')) { j--; continue; } if (jc != ic) return false; i++; j--; } return true; }}