博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode "Wildcard Matching"
阅读量:5094 次
发布时间:2019-06-13

本文共 1584 字,大约阅读时间需要 5 分钟。

Here is the most elegant code I've seen to this problem:

http://yucoding.blogspot.com/2013/02/leetcode-question-123-wildcard-matching.html

Simply wow. I added a small tuning: multiple consecutive *s equal a single *:

class Solution {public:    bool _isMatch(const char *s, size_t lens, const char *p, size_t lenp)    {        const char *is = s, *ip = p;        const char *star = NULL, *starss = NULL; // for *        while (*is)        {            if (*ip == '?' || *ip == *is) { ip++; is++; continue; }            if (*ip == '*')             {                if (*(ip + 1) == 0) return true;                star = ip ++;                starss = is;                continue;            }            if (star)            {                ip = star + 1;                is = ++starss;                continue;            }            return false;        }        return *ip == 0 || (*ip == '*' && *(ip + 1) == 0);    }    bool isMatch(const char *s, const char *p) {        size_t lens = strlen(s);        size_t lenp = strlen(p);        if (lens == 0 && lenp == 0) return true;        //    Shrink *s.         string sp;        int id = 0, in = 0;        char lst = 0;        while (in < lenp)        {            char c = *(p + in);            if (c == '*' && c == lst)            {                in++;                continue;            }            else            {                sp += c;                id++; in++;                lst = c;            }        }        return _isMatch(s, lens, sp.c_str(), sp.length());    }};

转载于:https://www.cnblogs.com/tonix/p/3900476.html

你可能感兴趣的文章
iOS开发Swift篇—(四)运算符
查看>>
ADO.NET Asynchronous Programming
查看>>
linux环境变量与本地变量
查看>>
css-Sprite
查看>>
关于“设计模式”和“设计程序语言”的一些闲话
查看>>
(一二九)获取文件的MineType、利用SSZipArchive进行压缩解压
查看>>
python学习4 常用内置模块
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
linux使用vi浏览python源码
查看>>
客户端向服务端请求连接是出现"ssh : Connection refused"原因有哪些
查看>>
ResolveUrl的用法
查看>>
免费开源ERP成功案例分享:化学之家通过Odoo实现工业互联网转型
查看>>
[单选题]range('a', 'z')返回什么?
查看>>
python中super用法
查看>>
WCF 错误 给定关键字不在字典中
查看>>
JAVA中反射机制
查看>>
Python学习笔记(十)—— 高级特性
查看>>
Java基础之String,StringBuilder,StringBuffer
查看>>
SSH框架整合 spring struts2 hibernate
查看>>
测试Location对象的Hash属性
查看>>