LeetCode(61)-Valid Palindrome

Posted llguanli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
    }
}

以上是关于LeetCode(61)-Valid Palindrome的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 32. Longest Valid Parentheses

LeetCode 32. Longest Valid Parentheses

leetcode No593. Valid Square

leetcode No593. Valid Square

LeetCode算法题-Valid Anagram(Java实现)

日常系列LeetCode《2·一维数组篇》