Wildcard Matching

update Sep 17 2018, 18:20

LeetCodearrow-up-right

Given an input string (s) and a pattern (p), implement wildcard pattern matching with support for '?' and '*'.

'?' Matches any single character. '*' Matches any sequence of characters (including the empty sequence). The matching should cover the entire input string (not partial).

Note:

s could be empty and contains only lowercase letters a-z. p could be empty and contains only lowercase letters a-z, and characters like ? or *.

Example 1:

Input:
s = "aa"
p = "a"
Output: false
Explanation: "a" does not match the entire string "aa".

Example 2:

Input:
s = "aa"
p = "*"
Output: true
Explanation: '*' matches any sequence.

Example 3:

Example 4:

Example 5:

Basic Idea

利用dp的思路考虑,有如下规则:

Java Code:

注意一个细节,如果p中除了*的部分比s长,则不可能匹配,直接返回false;