leetcode--Valid Palindrome

来源:互联网 发布:不要在淘宝请符 编辑:程序博客网 时间:2024/05/16 05:58

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.

双指针问题:

java:

public class Solution {    public boolean isPalindrome(String s) {        int len = s.length();        if(len<=0){            return true;        }        int i=0,j=len-1;        while(i<=j){            if(s.charAt(i)>='a'&&s.charAt(i)<='z'||s.charAt(i)>='A'&&s.charAt(i)<='Z'||s.charAt(i)>='0'&&s.charAt(i)<='9'){                if(s.charAt(j)>='a'&&s.charAt(j)<='z'||s.charAt(j)>='A'&&s.charAt(j)<='Z'||s.charAt(j)>='0'&&s.charAt(j)<='9'){                    if(s.charAt(i)==s.charAt(j)||s.charAt(i)==s.charAt(j)+32||s.charAt(i)+32==s.charAt(j)){                        i++;                        j--;                    }else{                        return false;                    }                }else{                    j--;                }            }else{                i++;            }        }        return true;    }}
c++:

class Solution {public:    bool isPalindrome(string s) {        int len = s.length();        if(len<=1)            return true;        for(int i=0;i<len;i++){            if(s[i]>='a'&&s[i]<='z'){                s[i]=(char)(s[i]-32);            }        }        int i=0,j=len-1;        while(i<=j){            if(s[i]>='0'&&s[i]<='9'||s[i]>='A'&&s[i]<='Z'){                if(s[j]>='0'&&s[j]<='9'||s[j]>='A'&&s[j]<='Z'){                    if(s[i]!=s[j]){                        return false;                    }else{                        j--;                        i++;                    }                }else{                    j--;                }            }else{                i++;            }        }        return true;    }};





0 0