This is Wildcard Matching from LeetCode. Given a string and a pattern with wildcards, determine if they match. '?' matches any single character. '*' matches any sequence (including empty).
For s = "adceb" and p = "ab", the answer is true. The first '' matches "", 'a' matches 'a', second '' matches "dce", 'b' matches 'b'. The '*' can match zero or more characters, making it harder than '?': you may need to try multiple split positions.