给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama" 输出: true
示例 2:
输入: "race a car" 输出: false 思路:从头尾开始同时遍历比较 目前 beat 95%
class Solution { public boolean isPalindrome(String s) { char[] ch = s.toCharArray(); int i=0,j = ch.length-1; for(;i<j;){ if(Character.isDigit(ch[i])){ if(Character.isDigit(ch[j])) { if(ch[i]!=ch[j]) return false; else{ --j;++i; } } else if(Character.isLetter(ch[j])) return false; else --j; } else if(Character.isLetter(ch[i])){ if(Character.isLetter(ch[j])){ if(ch[i]==ch[j] || ch[i]==ch[j]+32 || ch[i]==ch[j]-32) { ++i;--j;} else return false; } else if(Character.isDigit(ch[j])) return false; else --j; } else ++i; } return true; } }
原文地址:https://www.cnblogs.com/chen-jack/p/9940275.html
时间: 2024-11-06 16:22:08