zoukankan      html  css  js  c++  java
  • leetcode-剑指19-OK

    // language C with STL(C++)
    // 剑指19
    // https://leetcode-cn.com/problems/zheng-ze-biao-da-shi-pi-pei-lcof/
    // 偷师题解
    
    class Solution {
    public:
    	int getnum(string what, char a){
    		int num = 0;
    		int len = what.length();
    		for(int i =0; i<len; i++){
    			if(what[i] == a)
    				num++;
    		}
            return num;
    	}
    
    
        bool isMatch(string s, string p) {
        	int len_s = s.length();
        	int len_p = p.length();
        	int num_star = getnum(p,'*');
        	int num_dot  = getnum(p,'.');
        	if(len_s == 0){
        		if(len_p == 2 *num_star){
        			return true;
        		}else{
        			return false;
        		}
        	}
        	bool res[len_s+1][len_p+1];
    
        	for(int i = 0; i <= len_s; i++){
        		for(int j = 0; j <= len_p; j++){
        				res[i][j] = false;
        		}
        	}
    
        	for(int i = 0; i <= len_s; i++){
        		for(int j = 0; j <= len_p; j++){
        			if(j == 0 )
        				res[i][j] = (i==0);
        			else{
        				if(p[j-1] != '*'){
        					if(i>0 && (s[i-1]== p[j-1] || p[j-1] == '.')){
        						res[i][j] = res[i-1][j-1];
        					}
        				}else{
        					if(j>=2){
        						res[i][j] |= res[i][j-2];
        					}
        					if(i>0 && j>=2 && (s[i-1]== p[j-2] || p[j-2] == '.')){
        						res[i][j] |= res[i-1][j];
        					}
        				}
        			}
        		}
        	}
        	return res[len_s][len_p];
        }
    };
    
  • 相关阅读:
    JasperReport
    Linux
    Linux
    Linux
    Linux
    Groovy
    Linux
    VS
    Aliyun
    Linux
  • 原文地址:https://www.cnblogs.com/gallien/p/14394271.html
Copyright © 2011-2022 走看看