leetcode(valid-palindrome)判断字符串是否是对称

来源:互联网 发布:u盘坏了数据恢复 编辑:程序博客网 时间:2024/05/19 22:49

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

For example,
“A man, a plan, a canal: Panama”is a palindrome.
“race a car”is not a palindrome.
Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.
For the purpose of this problem, we define empty string as valid palindrome.
解题方法:使用的是二分查找里面的快排算法。但是这里之判断大小写字母和所有的数字。

public class Solution {    public boolean isPalindrome(String s) {            if(s==null||s.length()==0||s.length()==1) return true;        int i=0,j=s.length()-1;         char left,right;        while(i<j){            left=s.charAt(i);          right=s.charAt(j);          while(i<j&&!((left>='a'&&left<='z')||(left>='A'&&left<='Z')||(left>='0'&&left<='9'))){              i++;              left=s.charAt(i);          }          if(left>='a'&&left<='z') left=(char) ('A'-'a'+left);          while(i<j&&!((right>='a'&&right<='z')||(right>='A'&&right<='Z')||(right>='0'&&right<='9'))){              j--;              right=s.charAt(j);          }           if(right>='a'&&right<='z') right=(char) ('A'-'a'+right);          if(left-right==0){              i++; j--;          }else return false;        }        return true;    }}
0 0
原创粉丝点击