Description

Given an input string s and a pattern p, implement wildcard pattern matching with support for '?' (matches any single character) and '*' (matches any sequence of characters including empty). Return true or false.

Examples

Input:s = "aa", p = "a"
Output:false
Explanation:

Pattern a has length 1 but string aa has length 2. No wildcards to extend the match.

Input:s = "aa", p = "*"
Output:true
Explanation:

The * wildcard matches any sequence including aa, so the entire string is consumed.

Input:s = "cb", p = "?a"
Output:false
Explanation:

? matches c at index 0, but literal a cannot match b at index 1. No match.

Constraints

  • 0 ≤ s.length, p.length ≤ 2000
  • s contains only lowercase English letters.
  • p contains only lowercase English letters, '?' or '*'.

Ready to solve this problem?

Practice solo or challenge other developers in a real-time coding battle!