1class Solution {2public:3bool isMatch(string s, string p) {4return helper(s, p, 0, 0);5}67bool helper(string s, string p, int i, int j) {8if (j == p.length()) return i == s.length();9bool first_match = (i < s.length() && (s[i] == p[j] || p[j] == '.'));1011if (j + 1 < p.length() && p[j + 1] == '*') {12return (helper(s, p, i, j + 2) || (first_match && helper(s, p, i + 1, j)));13} else {14return (first_match && helper(s, p, i + 1, j + 1));15}16}17};