Search⌘ K
AI Features

Solution: Regular Expression Matching

Understand how to implement regular expression matching for strings and patterns containing '.' and '*'. Explore a dynamic programming approach with recursion and memoization to optimize performance by avoiding redundant calculations. This lesson teaches you to handle complex pattern matching step-by-step while improving time and space complexity.

Statement

You are given an input string, s, and a pattern string, p. Your task is to implement regular expression matching between s and p, where the pattern may include the special characters '.' and '*':

  • '.' matches any single character.

  • '*' matches zero or more occurrences of the preceding character.

The match must cover the entire input string, not just part of it.

Constraints:

  • 11 \leq s.length 20\leq 20

  • 11 \leq p.length 20\leq 20

  • s contains only lowercase English letters.

  • p contains only lowercase English letters, '.', and '*'.

  • It is guaranteed that for each appearance of the character '*', there will be a previous valid character to match.

Solution

One of the first ideas that comes to mind to solve ...