classSolution{publicbooleanhasMatch(String s,String p){// star indexint index =-1;for(int i =0; i < p.length();++i){if(p.charAt(i)=='*'){
index = i;break;}}int num1 =check(s, p.substring(0, index));if(num1 ==-1)returnfalse;int num2 =check(s.substring(num1), p.substring(index +1));return num2 !=-1;}privateintcheck(String s,String p){int n = s.length();int m = p.length();int j =0;// Iterate through string s, pattern matching// <= n - m in case out of boundfor(int i =0; i <= n - m;++i){// string pfor(j =0; j < m;++j){char c1 = s.charAt(j + i);char c2 = p.charAt(j);if(c1 != c2)break;}// Pattern matched, return tail index + 1if(j == m)return i + j;}return-1;// Matching failed}}