华为oj初级 字符串通配符
2017-03-10 14:44
211 查看
。现要求各位实现字符串通配符的算法。
要求:
实现如下2个通配符:
*:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同)
?:匹配1个字符
输入:
通配符表达式;
一组字符串。
输出:
返回匹配的结果,正确输出true,错误输出false
要求:
实现如下2个通配符:
*:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同)
?:匹配1个字符
输入:
通配符表达式;
一组字符串。
输出:
返回匹配的结果,正确输出true,错误输出false
#include<iostream> #include<string> using namespace std; bool compare(string str1, string str2, int i, int j){ if (i == str1.size() && j == str2.size()){ return true; } if (i == str1.size()){ return false; } if (str1[i] == '*'){ return compare(str1, str2, i + 1, j) || compare(str1,str2,i,j+1); } if (str1[i] == '?' || str1[i] == str2[j]){ return compare(str1,str2,i+1,j+1); } return false; } int main(){ string str1,str2; cin >> str1 >> str2; if(compare(str1,str2,0,0)){ cout << "true" << endl; } else{ cout << "false" << endl; } return 0; }
相关文章推荐
- 华为OJ 初级:字符串通配符
- 华为OJ 初级:字符串加解密
- 华为OJ 初级:字符串反转
- 华为OJ 初级:计算字符串的相似度
- 华为OJ 初级:字符串加解密
- 华为oj_字符串通配符
- 【华为OJ】【082-字符串通配符】
- 华为OJ:字符串通配符
- 华为oj初级 找出字符串中第一个只出现一次的字符
- Java算法--华为oj字符串通配符
- 华为oj初级 计算字符串的相似度
- 华为OJ(字符串通配符)
- 华为oj 字符串通配符
- 华为OJ——字符串通配符
- 华为OJ——字符串通配符
- 华为oj初级 在字符串中找出连续最长的数字串
- [华为OJ--C++]082-字符串通配符
- 华为OJ平台——字符串通配符
- 华为OJ:字符串通配符
- 华为oj 字符串通配符