fork download
  1. // two string
  2.  
  3. // string test= "abcdef"
  4. // string pattern = "abc*f"
  5.  
  6. // expected output = true
  7.  
  8. // test 1 =" jkabapq"
  9.  
  10.  
  11. // string test= "abcdef"
  12. // string pattern = abc*g*
  13.  
  14. // expected output = false
  15.  
  16. // string test= "abcdefggijkgh"
  17. // string pattern = "abc*g*h"
  18.  
  19. // expected output = true
  20.  
  21.  
  22. // string test= "abcdef"
  23. // string pattern = abc?e
  24.  
  25. // expected output = false
  26.  
  27.  
  28. // bool =
  29.  
  30. // ? = 1 character
  31. // * multiple character
  32.  
  33.  
  34. #include<bits/stdc++.h>
  35. using namespace std;
  36.  
  37. bool solve(string test, string pattern)
  38. {
  39. // string test= "abcdefggijkgh";
  40. // string pattern = "abc*g*h";
  41. int n=test.size();
  42. int m=pattern.size();
  43.  
  44. int left=0;
  45. int right=0;
  46.  
  47. for(int i=0;i<m;i++)
  48. {
  49. if(test[left]==pattern[right])
  50. {
  51. left++;
  52. right++;
  53. }
  54. else
  55. {
  56. if(test[left]=='*' && left<n)
  57. {
  58. bool flag=false;
  59. int pos=left;
  60. int temp=right;
  61. while(temp<m)
  62. {
  63. if(test[left+1]==pattern[temp])
  64. {
  65. pos=left;
  66. flag=false;
  67. }
  68.  
  69. }
  70.  
  71. if(flag==false)
  72.  
  73. return false;
  74.  
  75.  
  76. }
  77. }
  78. }
  79.  
  80. return true;
  81. }
  82. int main()
  83. {
  84. string test= "abcdefggijkgh";
  85. string pattern = "abc*g*h";
  86. cout<<solve(test,pattern);
  87. }
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
Success #stdin #stdout 0.01s 5280KB
stdin
Standard input is empty
stdout
1