码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Wildcard Matching

时间:2014-07-27 10:41:42      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

class Solution {
public:
    bool isMatch(const char *s, const char *p) {
        if (s == NULL || p == NULL) return false;
        int slen = 0;
        int plen = 0;
        
        while (s[slen] != \0) slen++;
        while (p[plen] != \0) plen++;
        
        if (slen == 0 && plen == 0) return true;
        if (plen == 0) return false;
        
        int si = 0;
        int pi = 0;
        int ppi = -1;
        int psi = 0;
        
        while (si < slen) {
            if (s[si] == p[pi] || p[pi] == ?) {
                si++, pi++;
            } else if (p[pi] == *) {
                ppi = pi++;
                psi = si;
            } else if (ppi != -1){
                pi = ppi + 1;
                si = ++psi;
            } else {
                return false;
            }
        }

        while (p[pi] == *) pi++;
        return pi == plen;
    }
};

 真写不出这样的代码。

参考:http://www.cnblogs.com/zhuli19901106/p/3572736.html

LeetCode Wildcard Matching

标签:

原文地址:http://www.cnblogs.com/lailailai/p/3870794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!