LeetCode(61)-Valid Palindrome

题目:

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.

思路:

  • 题意:判断一个字符串是不是回文
  • 这道题可以采用双指针,开头first,结尾sed,first++,sed–,first < sed
  • 要求不考虑大小写,全部转化为大写,同时判断字符是不是字母和数字,‘A’,‘Z’,‘0’,‘9’

代码:

public class Solution {
    public boolean isPalindrome(String s) {
        if(s == null){
            return true;
        }
        char A = 'A';
        char Z = 'Z';
        char numMin = '0';
        char numMax = '9';
        s = s.toUpperCase();
        int first  = 0;
        int sed = s.length() - 1;
        while(first < sed){
            if((s.charAt(first) < A||s.charAt(first) > Z) && (s.charAt(first) < numMin||s.charAt(first) > numMax)){
                first++;
                continue;
            }
            if((s.charAt(sed) < A||s.charAt(sed) > Z) && (s.charAt(sed) < numMin||s.charAt(sed) > numMax)){
                sed--;
                continue;
            }
            if(s.charAt(first) == s.charAt(sed)){
                first++;
                sed--;
            }else{
                return false;
            }
        }
        return true;
    }
}
上一篇:HDU 2859 Phalanx


下一篇:python 学习笔记 2 ----> dive into python 3