华为oj初级 字符串通配符

来源:互联网 发布:学directx编程要多久 编辑:程序博客网 时间:2024/05/19 19:34

。现要求各位实现字符串通配符的算法。
要求:
实现如下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;}  
0 0
原创粉丝点击