1

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

函数原型应该是: 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

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

4

1 回答 1

3

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

c*a*b可以翻译成

c - 0 次、a - 2 次和 b - 1 次

因此,等价于aab。在提供的定义中要查看的关键是 -“'*' 匹配零个或多个前面的元素。”

于 2012-12-24T06:06:09.120 回答