zoukankan      html  css  js  c++  java
  • Leetcode 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.


    解题思路:

    使用两个指针,一个从左到右,一个从右到左,当左指针值大于右指针时,说明String 遍历结束。注意:alphanumeric 包括 a-zA-Z0-9,一定要看清题意。

    因为忽略大小写,所以就统一为小写。

    同时面试时要问清楚当String is empty时,是否是valid palindrome.


    Java code:

     public boolean isPalindrome(String s) {
            if(s.length() == 0){
                return true;
            }
            int p1 = 0, p2 = s.length()-1;  //p1: left to right p2: right to left
            s= s.toLowerCase();
            while(p1 <= p2){
                char left = s.charAt(p1);
                char right = s.charAt(p2);
                if(!((left >='a' && left <= 'z') || (left >= '0' && left <= '9'))){
                    p1++;
                    continue;
                }
                if(!((right >='a' && right <= 'z') || (right >= '0' && right <= '9'))){
                    p2--;
                    continue;
                }
                if(left != right){
                    return false;
                }else{
                    p1++;
                    p2--;
                }
            }
            return true;
        }

    Reference:

    1. http://www.cnblogs.com/springfor/p/3884156.html

  • 相关阅读:
    http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码
    JS中的动态合集与静态合集
    对联
    诗词
    文言文
    Youth Is Not a Time of Life
    JS探秘——那些你理解存在偏差的问题
    JS中的加号+运算符详解
    支持HTTP2协议
    银行卡信息查询接口
  • 原文地址:https://www.cnblogs.com/anne-vista/p/4848895.html
Copyright © 2011-2022 走看看