GEEK编程练习— —通配符匹配
来源:互联网 发布:rc串联电路实验数据 编辑:程序博客网 时间:2024/05/16 05:57
题目
实现’?’和’*’组成的通配符的匹配功能。
1) ‘?’匹配任意单个字母。
2) ‘*’匹配任意字母序列,包括空序列。
3) 输入的字符串要整体覆盖,不能部分覆盖。
输入
aa aaa aaaaa aaaa *aa a*ab ?*aab c*a*baab *b
输出
Not MatchMatchNot MatchMatchMatchMatchNot MatchMatch
分析
与昨天的题目类似,不过这里的’*’代表意义不同,所以实现也不同。
代码
#include<iostream>#include<string>using namespace std;int main(){ string s, p; cin >> s >> p; bool star = false; int i = 0, j = 0; while (1) { if (s[i] == '\0') { cout << "Not Match" << endl; return 0; } if (p[j] == '?') { ++i; ++j; } else if (p[j] == '*') { star = true; while (p[j] == '*') { ++j; } if (p[j] == '\0') { cout << "Match" << endl; return 0; } } else { if (s[i] != p[j]) { if (!star) { cout << "Not Match" << endl; return 0; } ++i; } else { ++i; ++j; if (p[j] == '\0' && s[i] == '\0') { cout << "Match" << endl; return 0; } } } } return 0;}
0 0
- GEEK编程练习— —通配符匹配
- GEEK编程练习— —字符串匹配
- GEEK编程练习— —正则表达式匹配
- GEEK编程练习— —螺旋矩阵
- GEEK编程练习— —zigzag矩阵
- GEEK编程练习— —字符替换
- GEEK编程练习— —格雷码
- GEEK编程练习— —回文字符串
- GEEK编程练习— —有效数字
- GEEK编程练习— —罗马数字问题
- GEEK编程练习— —计数问题
- GEEK编程练习— —回文构词法
- GEEK编程练习— —反转整数
- GEEK编程练习— —回文整数
- GEEK编程练习— —最长回文子序列LPS
- GEEK编程练习— —数组去重
- GEEK编程练习— —旋转排序数组中的查找
- GEEK编程练习— —连续出现最多子串
- JUnit报错nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to...
- VB程序的脱壳技巧
- HashMap的遍历方式
- 接上篇博客:TabHost
- python基础
- GEEK编程练习— —通配符匹配
- 【Android基础知识】ListView和适配器的使用
- MVP架构模式
- mysql 数据库配置
- 基入JavaScriptSerializer 自己写了个 通过json获取特定的值的程序
- 层层剖析-四大组件
- MacBook怎样装Win10?双系统玩转Win10
- oracle的常用函数 instr() 和substr()函数
- inode与super block