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

    Similar Questions: Palindrome Linked List 

    Next challenges: Max Consecutive Ones II Detect Capital Design Log Storage System

    思路:要比较的是字符串中的数字和字母,注意字母的大小写是不区分的。头尾2个指针,遇到非数字或者非字母的位置就直接跳过。Java中Character.isLetterOrDigit()来判断当前字符是否为数字或者字母,Character.toLowerCase()将字母统一转换为小写,数字不变。

    代码:

     1 public class Solution {
     2     public boolean isPalindrome(String s) {
     3         int len = s.length();
     4         for(int start = 0, end = len - 1; end > start; ) {
     5             if(!Character.isLetterOrDigit(s.charAt(start))) {
     6                 start++;
     7                 continue;
     8             }
     9             if(!Character.isLetterOrDigit(s.charAt(end))) {
    10                 end--;
    11                 continue;
    12             }
    13             if(Character.toLowerCase(s.charAt(start)) != Character.toLowerCase(s.charAt(end))) return false;
    14             start++;
    15             end--;
    16         }
    17         return true;
    18     }
    19 }
  • 相关阅读:
    JS判断单选框是否选中
    Js判断是否有属性
    判断是否有焦点
    Js 替代
    Js解析json
    回车事件
    js解析XML
    Linux常用基础(三)
    Linux常用基础(二)
    Linux常用基础(一)
  • 原文地址:https://www.cnblogs.com/Deribs4/p/7221253.html
Copyright © 2011-2022 走看看