動手刷LeetCode-匹配通配符

知識點

動態規劃

解題思路

解法一:分類討論

class Solution {
public:
    bool isMatch(string& s, string& p) {

        int i,j=0;
        int flag=0;// to how many *

        if(s.size()==0 && p.size()==0){
            return true;
        }        
        if(p.size()==0){
            return false;
        }

        for(i=0;i<p.size();i++){
            if(p[i]=='*'){
                flag++;
            }
        }

        if(flag==0){
            // there is no * in string
            if(s.size()!=p.size()){
                return false;
            }
            for(i=0;i<s.size();i++){
                if(s[i]!=p[i] && p[i]!='*'){
                    return false;
                }
            }
            if(i==s.size()){
                return true;
            }
        }

        // has flag '*'  這後面就是不會做了。
        if(flag>0){
            for(i=0;i<s.size();){
                
                if(p[j]=='*'){


                }else{
                    if(s[i]==p[i]){
                        
                    }

                }
            }
        }
        return true;

    }
};

小結

所謂算法,就是給問題提供思考的角度和範式。
還是要加強 動態規劃的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章