public boolean isMatch(String s, String p) {
		if (s == null || p == null)
			return false;
		if ("".equals(p)) {
			if ("".equals(s))
				return true;
			return false;
		}
		this.s = s;
		this.p = p;
		f = new Boolean[s.length() + 1][];
		for (int i = 0; i <= s.length(); i++)
			f[i] = new Boolean[p.length() + 1];
		f[0][0] = true;

		return search(s.length(), p.length());
	}