diff --git a/solution/010. Regular Expression Matching/Solution.java b/solution/010. Regular Expression Matching/Solution.java new file mode 100644 index 0000000000000..c4f5803f0e4f1 --- /dev/null +++ b/solution/010. Regular Expression Matching/Solution.java @@ -0,0 +1,21 @@ +class Solution { + public boolean isMatch(String s, String p) { + boolean[] match = new boolean[s.length() + 1]; + match[s.length()] = true; + for (int i = p.length() - 1; i >= 0; i--) { + if (p.charAt(i) == '*') { + for (int j = s.length() - 1; j >= 0; j--) { + match[j] = match[j] || (match[j + 1] && (p.charAt(i - 1) == '.' || + (p.charAt(i - 1) == s.charAt(j)))); + } + i--; + } else { + for (int j = 0; j < s.length(); j++) { + match[j] = match[j + 1] && (p.charAt(i) == '.' || (p.charAt(i) == s.charAt(j))); + } + match[s.length()] = false; + } + } + return match[0]; + } +} \ No newline at end of file