zoukankan      html  css  js  c++  java
  • [Leetcode 38] 125 Valid Palindrome

    Problem:

    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.

    Analysis:

    Get two pointer pi, pj, pi points to the head of the string, pj points to the end of the string. 

    Then compare the two pointed characters, if they are the same, then pi++, pj--, repeat the comparision.

    If they are not the same, return false;

    Code:

     1 class Solution {
     2 public:
     3     bool isPalindrome(string s) {
     4         // Start typing your C/C++ solution below
     5         // DO NOT write int main() function
     6         if (s == "") return true;
     7         
     8         int i = 0, j = s.size()-1;
     9         while (true) {
    10             while (!((s[i]>='0'&&s[i]<='9') || (s[i]>='a' && s[i]<='z')
    11                     || (s[i]>='A' && s[i]<='Z')))
    12                     if ((i++) >= s.size()) break;
    13                     
    14             while (!((s[j]>='0'&&s[j]<='9') || (s[j]>='a' && s[j]<='z')
    15                     || (s[j]>='A' && s[j]<='Z')))
    16                     if ((j--) < 0) break;
    17                     
    18             if (i >= j) break;
    19             
    20             if (toLower(s[i]) != toLower(s[j]))
    21                 return false;
    22             
    23             i++;
    24             j--;
    25         }
    26         
    27         return true;
    28     }
    29     
    30     char toLower(char a) {
    31         if (a>='A' && a<= 'Z')
    32             a += 32;
    33             
    34         return a;
    35     }
    36     
    37     
    38 };
    View Code

    Attention:

  • 相关阅读:
    多线程----Thread类,Runnable接口,线程池,Callable接口,线程安全
    PHP-数据类型
    MySQL-数据与事务控制语言
    数据库查询练习题
    MySQL-数据操作语言(DML)
    MySQL-表操作
    MySQL-数据类型
    MySQL-数据库相关操作
    js Dom简单练习题
    js中的Dom操作
  • 原文地址:https://www.cnblogs.com/freeneng/p/3096220.html
Copyright © 2011-2022 走看看