bool isMatch(char *s, char *p)
{
	if (!p || p[0] == NULL)
		return (!s || s[0] == NULL);
	bool head_match = (s && s[0] && (s[0] == p[0] || p[0] == '.'));
	if (p[1] && p[1] == '*')
	{
		return (head_match && isMatch(s + 1, p)) || isMatch(s, p + 2);
	}
	else
	{
		return head_match && isMatch(s + 1, p + 1);
	}
}