zoukankan      html  css  js  c++  java
  • 415. 有效回文串

    给定一个字符串,判断其是否为一个回文串。只包含字母和数字,忽略大小写。

     注意事项

    你是否考虑过,字符串有可能是空字符串?这是面试过程中,面试官常常会问的问题。

    在这个题目中,我们将空字符串判定为有效回文。

    样例

    "A man, a plan, a canal: Panama" 是一个回文。

    "race a car" 不是一个回文。

    #include <iostream>
    
    using namespace std;
    
    
    /*
            给定一个字符串,判断其是否为一个回文串。只包含字母和数字,忽略大小写。
    注意事项
            1.你是否考虑过,字符串有可能是空字符串?这是面试过程中,面试官常常会问的问题。
            2.在这个题目中,我们将空字符串判定为有效回文。
    样例
            "A man, a plan, a canal: Panama" 是一个回文。
            "race a car" 不是一个回文。
    */
    class Solution {
    public:
    
        bool check(char ch) {
            if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9'))
                return false;
            return true;
        }
    
        bool isPalindrome(string &s) {
    
            if (s.empty())
                return true;
            
            int size = s.size();
            int end = size - 1;
            int begin = 0;
            while (begin < end) {
                while (end >= 0 && check(s[end])) {
                    --end;
                }
                while (begin < size && check(s[begin])) {
                    ++begin;
                }
    
                if (tolower(s[end]) != tolower(s[begin]))
                    return false;
                else
                    --end, ++begin;
            }
            return true;
        }
    };
    
    
    int main() {
        Solution solution;
        string str = "A";
        bool isMatch = solution.isPalindrome(str);
        cout << "isMatch==" << isMatch << endl;
        return 0;
    }
    

      

  • 相关阅读:
    3月30日
    3月29日
    3月26日
    3月24
    3月22日
    3月20日
    博弈论基础
    $burnside$引理与$pacute olya$定理
    min-max容斥
    模板
  • 原文地址:https://www.cnblogs.com/kanekiken/p/7976837.html
Copyright © 2011-2022 走看看