8000 Update RegularExpressionMatching.js · dnshi/Leetcode@2866878 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2866878

Browse files
authored
Update RegularExpressionMatching.js
1 parent b2a9b19 commit 2866878

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

algorithms/RegularExpressionMatching.js

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,13 @@
3232
* @return {boolean}
3333
*/
3434
var isMatch = function(s, p) {
35-
var result = s.match(RegExp(p));
36-
return result ? result[0] === s : false;
35+
if (p.length === 0) {
36+
return !s.length
37+
}
38+
let firstLetterMatched = s.length > 0 && (s[0] === p[0] || p[0] === '.')
39+
40+
if (p[1] === '*') {
41+
return isMatch(s, p.substring(2)) || (firstLetterMatched && isMatch(s.substring(1), p))
42+
}
43+
return firstLetterMatched && isMatch(s.substring(1), p.substring(1))
3744
};
38-
39-
// Test cases
40-
console.log(isMatch('aa', 'a')); // false
41-
console.log(isMatch('aa', 'aa')); // true
42-
console.log(isMatch('aaa', 'aa')); // false
43-
console.log(isMatch('aa', 'a*')); // true
44-
console.log(isMatch('aa', '.*')); // true
45-
console.log(isMatch('ab', '.*')); // true
46-
console.log(isMatch('aab', 'c*a*b')); // true

0 commit comments

Comments
 (0)
0