125 Valid Palindrome 验证回文字符串
给定一个字符串,确定它是否是回文,只考虑字母数字字符和忽略大小写。
例如:
"A man, a plan, a canal: Panama" 是回文字符串。
"race a car" 不是回文字符串。
注意:
你有考虑过这个字符串可能是空的吗? 在面试中这是一个很好的问题。
针对此题目,我们将空字符串定义为有效的回文字符串。
详见:https://leetcode.com/problems/valid-palindrome/description/
Java实现:
class Solution { public boolean isPalindrome(String s) { int size=s.length(); if(s.isEmpty()||size==0){ return true; } char[] chars=s.toLowerCase().toCharArray(); int left=0; int right=size-1; while(left<right){ if(!isAlphaOrNum(chars[left])){ ++left; }else if(!isAlphaOrNum(chars[right])){ --right; }else if(chars[left]==chars[right]){ ++left; --right; }else{ return false; } } return true; } private boolean isAlphaOrNum(char ch){ if(ch>='a'&&ch<='z'){ return true; } if(ch>='0'&&ch<='9'){ return true; } return false; } }