百练 6252:带通配符的字符串匹配
来源:互联网 发布:js数组去重方法 编辑:程序博客网 时间:2024/06/03 14:50
题目:
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
通配符是一类键盘字符,当我们不知道真正字符或者不想键入完整名字时,常常使用通配符代替一个或多个真正字符。通配符有问号(?)和星号(*)等,其中,“?”可以代替一个字符,而“*”可以代替零个或多个字符。
你的任务是,给出一个带有通配符的字符串和一个不带通配符的字符串,判断他们是否能够匹配。
例如,1?456 可以匹配 12456、13456、1a456,但是却不能够匹配23456、1aa456;
2*77?8可以匹配 24457798、237708、27798。- 输入
- 输入有两行,每行为一个不超过20个字符的字符串,第一行带通配符,第二行不带通配符
- 输出
- 如果两者可以匹配,就输出“matched”,否则输出“not matched”
- 样例输入
1*456?11111114567
- 样例输出
matched
- 动态规划解法:
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int Tmax=105;char a[Tmax],b[Tmax];int la,lb;bool f[Tmax][Tmax];int main(){ int i,j,k; scanf("%s",a+1); scanf("%s",b+1); la=strlen(a+1); lb=strlen(b+1); f[0][0]=1; for(i=1;i<=la;i++) for(j=0;j<=lb;j++) { if(a[i]==b[j]||a[i]=='?') f[i][j]=f[i-1][j-1]; else if(a[i]=='*') for(k=j;k>=0;k--) if(f[i-1][k]==true){ f[i][j]=true; break; } } if(f[la][lb]==true) printf("matched"); else printf("not matched"); return 0;}
非动态规划解法;
#include<cstdio>#include<cstring>using namespace std;bool isMatch(const char * s, const char * p){ bool star = false;const char *str,*ptr;for(str = s,ptr=p;*str != '\0'; str++,ptr++){switch(*ptr){case '?': break;case '*': star = true;s = str, p =ptr;while(*p=='*') p++;if(*p == '\0') return true;str = s-1; ptr=p-1;break;default:if(*str != *ptr){if(!star) return false;s++;str = s-1;ptr = p-1;}}}while(*ptr=='*') ptr++;return (*ptr == '\0');}int main(){ char s1[25],s2[25]; scanf("%s%s",s1,s2); bool ok = isMatch(s2,s1); if(ok) puts("matched"); else puts("not matched"); return 0;}
阅读全文
0 0
- 百练 6252:带通配符的字符串匹配
- OpenJudge 6252 带通配符的字符串匹配
- 带通配符*的字符串匹配
- 带通配符的字符串匹配
- 带通配符的字符串匹配
- NOI库6252 带通配符的字符串匹配
- OPENJUDGE NOI 6252 带通配符的字符串匹配
- 带通配符的字符串匹配问题
- openjudge6252 带通配符的字符串匹配
- 带通配符的字符串匹配:动态规划
- 字符串转换成整数/带通配符的字符串匹配
- 字符串转换成整数&带通配符的字符串匹配问题
- 字符串转换成整数,带通配符的字符串匹配
- C语言实现的带通配符的字符串匹配
- 带通配符的字符串匹配问题的动态规划算法
- 第2章 带通配符的字符串匹配问题
- 【Openjudge】带通配符的字符串匹配(递归)
- [openjudge]带通配符的字符串匹配(dp)
- android 删除整个文件夹里面的文件
- 小程序更新了开发环境不再限制白名单
- linux下 awk内置变量使用介绍
- event loop到底做了什么
- 表达式和基本语句的规范
- 百练 6252:带通配符的字符串匹配
- Python机器学习算法——决策树
- 7月工作小结
- JavaScript---继承之原型链
- python 不同OS上的路径转换
- HBase学习记录
- Configuration--settings(三-4)
- 关于微信小程序下拉刷新组件加载图片(三个小点)不显示的问题
- Django 进行数据库操作(1)