周末也没有做leetcode,感觉有点罪恶啊,这个第10题好难啊,涉及到递归了,看的我是头晕眼花啊。我看着看着还是有点收获的,我发现题目仍然没有我想象中的那么的简单,如果s = 'a b c d e',p = '. * e',这样匹配出的结果也是正确的,我就很纳闷儿啊,' . '是匹配任意一个字符,可是我以为只能匹配一个字符,但是从这个算例上看,当它和' * '在一起时,' . '可以多次匹配不同的字符,这个是我不太明白的地方。。好的吧,这样也让我更加的明白了题意。这个题真的是很难啊!!
有篇博文写的这个题目的分析挺不错的,可以让人看得懂,链接是:leetcode 10 题目分析。因为这个分析使用Java写的代码,我把它改成了C++版本并在leetcode上通过了测试。回到题目分析中,里面的表格就是分析的思路和过程,这个表格非常的重要,为了逻辑清楚,先对p做条件判断,在此基础上,再对s做条件判断。