zoukankan      html  css  js  c++  java
  • Valid Palindrome

    思路:前后两个指针。又一次bug free!

    (但是速度慢。待我想想有什么更好解法么?或者是 判断可以优化?

    果真!判断isCharEqual(c1,c2)时,可以优化。不需要判断c1到底是大写还是小写)如下面。

        bool isCharEqual(char c1, char c2){
            if(c1==c2 || (c1+'a'-'A')==c2 || (c1+'A'-'a')==c2) return true;
            else return false;
        }

     解法

    class Solution {
    public:
        bool isAlphanumeric(char c){
            if(('A'<=c && c<='Z') || ('a'<=c && c<='z')||('0'<=c && c<='9')) return true;
            else return false;
        }
        
        bool isCharEqual(char c1, char c2){
            if(c1==c2 || (c1+'a'-'A')==c2 || (c1+'A'-'a')==c2) return true;
            else return false;
        }
        
        bool isPalindrome(string s) {
            //check validation
            if(s.empty()) return true;
            
            //check special case or bound
            size_t len=s.size();
            if(len==1) return true;
            
            //general case
            int i,j;
            bool res=true;
            for(i=0,j=len-1;i<=j;){
                if(!isAlphanumeric(s[i])) i++;
                else if(!isAlphanumeric(s[j])) j--;
                else if(isCharEqual(s[i],s[j])){i++;j--;}
                else {res=false;break;}
            }
            return res;
        }
    };
  • 相关阅读:
    HTML超文本标记语言(八)——表单<form>
    如何理解JavaScript中给变量赋值,是引用还是复制
    PostCSS 实战
    sass 工具库
    微信小程序-制作简易豆瓣笔记
    学习pano2vr制作html5全景笔记
    git命令笔记
    Gulp实战
    html5-离线存储
    html5
  • 原文地址:https://www.cnblogs.com/renrenbinbin/p/4438977.html
Copyright © 2011-2022 走看看