Valid Palindrome

来源:互联网 发布:自然排名优化的方法 编辑:程序博客网 时间:2024/06/05 09:00

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 isalphanumeric (char c){if(c>='0'&&c<='9'||c>='a'&&c<='z'||c>='A'&&c<='Z'){return true;}return false;}public boolean isPalindrome(String s) {        if(s==null||s.length()==0)return true;int i = 0;int j = s.length()-1;while(i<j){while(i<j&&!isalphanumeric(s.charAt(i))){i++;}while(i<j&&!isalphanumeric(s.charAt(j))){j--;}if(Character.toLowerCase(s.charAt(i))!=Character.toLowerCase(s.charAt(j))){return false;}i++;j--;}return true;    }public static void main(String [] args){Solution solution = new Solution();String str1 = new String("A man, a plan, a canal: Panama");String str2 = new String("race a car");System.out.println(solution.isPalindrome(str1));System.out.println(solution.isPalindrome(str2));}}




0 0
原创粉丝点击