一个leetcode程序,不懂语句

时间:2012-12-24 06:04:30

标签: java c++

'。'匹配任何单个字符。 '*'匹配前面元素的零个或多个。 匹配应覆盖整个输入字符串(非部分)。

函数原型应该是: bool isMatch(const char * s,const char * p)

一些例子:

isMatch(“aa”,”a”) → false
isMatch(“aa”,”aa”) → true
isMatch(“aaa”,”aa”) → false
isMatch(“aa”, “a*”) → true
isMatch(“aa”, “.*”) → true
isMatch(“ab”, “.*”) → true
isMatch(“aab”, “c*a*b”) → true

为最后一行

isMatch(“aab”, “c*a*b”) → true

我不确定*是什么意思, 我只是想*可以匹配许多字符的零,如*可以匹配任何字符串(字符序列),但它似乎不对

1 个答案:

答案 0 :(得分:3)

  

'*'匹配前面元素中的零个或多个。

c*a*b可以翻译为

c - 0次,a - 2次,b - 1次

因此,相当于aab。在提供的定义中要注意的关键是 - “'''匹配前一个元素的零或更多 。”