包含“?”和“*”的通配符字符串匹配
来源:互联网 发布:脸书注册总说网络错误 编辑:程序博客网 时间:2024/05/03 20:00
题目描述:
Str1中可能包含的字符:除了'*'和'?'以外的任意字符。
Str2中可能包含的字符:任意字符。其中,'?'表示匹配任意一个字符,'*'表示匹配任意字符0或者多次。
Str1中可能包含的字符:除了'*'和'?'以外的任意字符。
Str2中可能包含的字符:任意字符。其中,'?'表示匹配任意一个字符,'*'表示匹配任意字符0或者多次。
给出这样两个字符串,判断Str2是否是Str1的子串,如果是输出第一个匹配到的子串的初始位置,如果不是,输出"-1"。
代码如下:
</pre><pre name="code" class="cpp">#include<iostream>using namespace std;#include<string>using std::string;#include<vector>int main(){string a,b;cin>>a;cin>>b;vector<string> t;string tmp="";int front = 0;int last = 0;int substart = 0;if(a[0]=='*'){ front = 1;}if(a[a.size()-1]=='*'){last = 1;}for(int i=0;i<a.size();i++){ if(i==0&&a[i]=='*'){substart = i+1;continue;}if(a[i]=='*'&&i-substart>0){t.push_back(a.substr(substart,i-substart));substart = i+1;}else if(i==a.size()-1&&i-substart+1>0){t.push_back(a.substr(substart,i-substart+1));}}if(t.size()==0&&b.size()>0) {cout<<0<<endl;return 0;}for(int i =0;i<t.size();i++){ cout<<t[i]<<endl;;}int f =0;int c =0;int s = -1;int sucess = 0;int front1 = 0;for(int i = 0;i<b.size()+1;i++){ if(front==1){ front = 0; s = 0;front1 = 1;continue;}if(c>=t[f].size()){f++;c= 0;if(f>=t.size()){ if(last==0||(last==1)){sucess = 1;break;}}continue;}if(i>=b.size())break;if(t[f][c]=='?'){ if(f==0&&c==0&&front1==0){s=i;}c++;}else{if(t[f][c]==b[i]){ if(f==0&&c==0&&front1==0){s=i;} c++;}else{i = i-c;c = 0;}}//cout<<f<<" "<<c<<endl;}if(sucess==0) s = -1;cout<<s;system("pause");return 0;}
0 0
- 包含“?”和“*”的通配符字符串匹配
- 字符串匹配算法,包含通配符"*"、"?"的匹配
- 含有通配符?和*的字符串匹配算法
- 带有通配符的字符串和另一个字符串进行匹配
- 带有通配符的字符串和另一个字符串进行匹配
- 字符串通配符的匹配算法
- 带通配符*的字符串匹配
- 通配符的字符串匹配算法
- 通配符的字符串匹配算法
- 含有通配符的字符串匹配
- 带通配符的字符串匹配
- 带通配符的字符串匹配
- 一个小函数,实现通配符*和?的字符串匹配。
- 含通配符‘?’的字符串的匹配
- 含有通配符的字符串匹配算法
- 带有通配符的两个字符串匹配问题
- 带通配符的字符串匹配问题
- 含通配符的字符串匹配问题
- Java把图片复制到剪切板上
- iReport报表实战-图文详解
- 基于Spring JDBC的轻量级ORM-sborm介绍
- Highcharts 统计报表的使用(曲线图)
- BZOJ 3922:Karin的弹幕 【线段树】+【暴力】
- 包含“?”和“*”的通配符字符串匹配
- hadoop单机存储均衡和坏block处理
- Android:WebView与Javascript交互(相互调用参数、传值)
- JLU -acm 代码库(校园版)----------Graph 图论
- //打印出100到1000之间的所有素数
- vim 命令
- 3.30号百度地图
- Java编程提高性能时需注意的地方
- macvim lua-support Load Menu 错误解决