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];
        }
    };
    
  • 相关阅读:
    iOS 多线程/GCD
    iOS推送通知的实现步骤
    Swift中文教程-学习
    设计模式——观察者模式
    SSM学习
    Servlet 学习
    java基础
    DOM中节点
    会议管理系统设计
    springboot与thymeleaf 整合
  • 原文地址:https://www.cnblogs.com/gallien/p/14394271.html
Copyright © 2011-2022 走看看