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.

    思路:最一般的遍历+比较。注意题目要求和字母大小写问题。

       时间复杂度O(n),空间复杂度O(1)

     1 class Solution {
     2 public:
     3     bool isPalindrome(string s) {
     4         if (s.empty()) return true;
     5         
     6         vector<char> cvec;
     7         for (string::size_type i = 0, j = s.size() - 1; i < j;) {
     8             if (!isalnum(s[i])) {
     9                 ++i;
    10                 continue;
    11             }
    12             if (!isalnum(s[j])) {
    13                 --j;
    14                 continue;
    15             }
    16             if (isdigit(s[i]) && s[i] != s[j]) {
    17                 return false;
    18             }
    19             if (isalpha(s[i]) && (toupper(s[i]) != toupper(s[j]))) {
    20                 return false;
    21             }
    22             ++i;
    23             --j;
    24         }
    25     
    26         
    27         return true;
    28     }
    29 };
  • 相关阅读:
    substr函数
    Oracle 日期处理
    translate函数使用
    nvl函数
    random随机函数
    case语句
    列的拼接
    并行HASH JOIN小表广播问题
    WITH AS 优化逻辑读
    【hihoCoder挑战赛28 A】异或排序
  • 原文地址:https://www.cnblogs.com/vincently/p/4073704.html
Copyright © 2011-2022 走看看