zoukankan      html  css  js  c++  java
  • leetCode(51):Valid Palindrome 分类: leetCode 2015-07-25 11:56 166人阅读 评论(0) 收藏

    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.

    //用两个指针实现,前提是要忽略其他符号

    class Solution {
    public:
        bool isPalindrome(string s) {
            if(s.empty())
                return true;
            int i=0;
            int j=s.size()-1;
            for(;i<j;i++)
            {//i后移
                if((s[i]>='a' && s[i]<='z') || (s[i]>='A' && s[i]<='Z') || (s[i]>='0' && s[i]<='9'))
                {//找到第一个为字符或数字的字符
                    for(;j>i;--j)
                    {//j前移
                        if((s[j]>='a' && s[j]<='z') || (s[j]>='A' && s[j]<='Z') || (s[j]>='0' && s[j]<='9'))
                        {//找到第一个为字符或数字的字符
                            if(s[i]==s[j] || s[i]+'A'-'a'==s[j] || s[i]+'a'-'A'==s[j])
                            {//找到后时行判断
                                j--;//前进一步
                                break;
                            }
                            else
                                return false;
                        }
                    }
                }
            }
            return true;
        }
    };


  • 相关阅读:
    从原理层面掌握@InitBinder的使用【享学Spring MVC】
    array详解
    forward_list详解
    list详解
    deque详解
    vector详讲(三)实例
    vector详讲(二)迭代器
    vector详讲(一)
    numeric_limits<>函数
    seek()和tell()在文件里转移
  • 原文地址:https://www.cnblogs.com/zclzqbx/p/4687045.html
Copyright © 2011-2022 走看看