博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LintCode] 通配符查询
阅读量:6956 次
发布时间:2019-06-27

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

动态规划:

1 class Solution { 2 public: 3     /** 4      * @param s: A string  5      * @param p: A string includes "?" and "*" 6      * @return: A boolean 7      */ 8     bool isMatch(const char *s, const char *p) { 9         // write your code here10         int m = strlen(s), n = strlen(p);11         vector
cur(m + 1, false);12 cur[0] = true;13 for (int j = 1; j <= n; j++) {14 bool pre = cur[0];15 cur[0] = cur[0] && p[j - 1] == '*';16 for (int i = 1; i <= m; i++) {17 bool temp = cur[i];18 if (p[j - 1] != '*')19 cur[i] = pre && (s[i - 1] == p[j - 1] || p[j - 1] == '?');20 else cur[i] = cur[i - 1] || cur[i];21 pre = temp;22 }23 }24 return cur[m];25 }26 };

贪心:

1 class Solution { 2 public: 3     /** 4      * @param s: A string  5      * @param p: A string includes "?" and "*" 6      * @return: A boolean 7      */ 8     bool isMatch(const char *s, const char *p) { 9         // write your code here10         const char* asterisk = NULL;11         const char* match = NULL;12         while (*s) {13             if (*p == '*') {14                 asterisk = p++;15                 match = s;16             }17             else if (*s == *p || *p == '?') {18                 s++;19                 p++;20             }21             else if (asterisk) {22                 s = ++match;23                 p = asterisk + 1;24             }25             else return false;26         }27         while (*p == '*') p++;28         return !*p;29     }30 };

 

转载于:https://www.cnblogs.com/jcliBlogger/p/4624041.html

你可能感兴趣的文章
Mybatis的整体架构
查看>>
跟我学习dubbo-简介(1)
查看>>
我的友情链接
查看>>
BeanShell作用域范围修饰符this、super和global
查看>>
Android spannableStringBuilder用法整理
查看>>
给出两个单词,找到它们的最短距离 (以它们之间隔了多少个单词计数)。
查看>>
C#学习基本概念之数据类型(2)---(C#与Java)
查看>>
我的友情链接
查看>>
学习/proc虚拟文件系统(六)
查看>>
12个优化Unity/GearVR应用的小技巧
查看>>
web.xml加载顺序
查看>>
MPMoviePlayerController iphone视频播放器
查看>>
NexentaStor 安装篇
查看>>
Graphical installers are not supported by the VM解决办法
查看>>
SubscriptionInfo框架解析
查看>>
我的大学之路---2012在迷雾中前进
查看>>
web前端开发中浏览器兼容问题(二)
查看>>
FF下margin不起作用的问题
查看>>
zabbix3.2+Grafana4.0实现可视化监控图形
查看>>
Java笔试题解(8)
查看>>