44. Wildcard Matching
Wildcard Matching
Solution
public class Solution {
public boolean isMatch(String s, String p) {
if (s == null || p == null) return false;
if (s.equals(p)) {
return true;
}
int i = 0;
int j = 0;
int startIndex = -1;
int tempIIndex = -1;
while (i < s.length()) {
if (j < p.length() && (p.charAt(j) == s.charAt(i) || p.charAt(j) == '?')) {
i ++;
j ++;
} else if (j < p.length() && p.charAt(j) == '*') {
startIndex = j;
tempIIndex = i;
j++;
} else if (startIndex != -1) {
j = startIndex + 1;
i = tempIIndex +1;
tempIIndex ++;
} else {
return false;
}
}
while (j<p.length() &&p.charAt(j) == '*') {
j ++;
}
return j == p.length();
}
}Last updated