zoukankan      html  css  js  c++  java
  • [leetcode]Valid Palindrome

    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.

    C++ 实现:

    #include <string>
    #include <iostream>
    #include <vector>
    using namespace std;
    class Solution {
    public:
        bool isPalindrome(string s) {
            int length = s.length();
            if(length == 0 || length == 1)return true;
            int i = 0,j = length - 1;
            while(i <= j){
                char prev = s[i];
                char last = s[j];
                bool p = isalpha(prev) || isdigit(prev);
                bool l = isalpha(last) || isdigit(last);
                if( p && l){
                    if(tolower(prev) == tolower(last)){
                        ++i;
                        --j;
                        continue;
                    }else{
                        return false;
                    }
                }
                else if(p)--j;
                else if(l)++i;
                else{--j;++i;}
            }
            return true;
        }
    };
    
    int main()
    {
        Solution s = Solution();
        cout << s.isPalindrome("1a2") << endl;
        return 1;
    }
    

      

  • 相关阅读:
    [BZOJ1006]神奇的国度
    配置ubuntu18.04
    数据库的基本操作
    关于排序的算法——桶排序
    关于TCP/IP协议的记录
    laravel学习历程
    装箱问题
    01背包
    数字三角形
    统计单词的个数
  • 原文地址:https://www.cnblogs.com/zhutianpeng/p/4250851.html
Copyright © 2011-2022 走看看