d*********g 发帖数: 38 | 1 Regular Expression Matching
题目要求:
'.' Matches any single character.
'*' Matches zero or more of the preceding element.
如果输入为s="ab", p=".*",OJ给出的答案是true,我觉得原因是:'.' 匹配'a';'*'
转换成了前一个字符'.', 然后匹配'b'.
但当输入为s="ab", p=".*c"的时候,OJ给出的答案是false. 可是如果用上面的方法,
应该也是true啊。注:只需s完全匹配,p不用。
求各位刷友解答。 |
t*****9 发帖数: 569 | 2 s是内容 p是模板 p没有得到匹配 当然是false
*'
【在 d*********g 的大作中提到】 : Regular Expression Matching : 题目要求: : '.' Matches any single character. : '*' Matches zero or more of the preceding element. : 如果输入为s="ab", p=".*",OJ给出的答案是true,我觉得原因是:'.' 匹配'a';'*' : 转换成了前一个字符'.', 然后匹配'b'. : 但当输入为s="ab", p=".*c"的时候,OJ给出的答案是false. 可是如果用上面的方法, : 应该也是true啊。注:只需s完全匹配,p不用。 : 求各位刷友解答。
|
M**********7 发帖数: 378 | 3 OJ没问题,补一下Regular Expression吧,基本的概念弄清楚点,这个也是刷题的意义
之一。
加油!
*'
【在 d*********g 的大作中提到】 : Regular Expression Matching : 题目要求: : '.' Matches any single character. : '*' Matches zero or more of the preceding element. : 如果输入为s="ab", p=".*",OJ给出的答案是true,我觉得原因是:'.' 匹配'a';'*' : 转换成了前一个字符'.', 然后匹配'b'. : 但当输入为s="ab", p=".*c"的时候,OJ给出的答案是false. 可是如果用上面的方法, : 应该也是true啊。注:只需s完全匹配,p不用。 : 求各位刷友解答。
|
d*********g 发帖数: 38 | 4 那为什么s=“aab”, p=“c*a*b” OJ给出的也是true呢? p中的'c'没有得到匹配。
所谓匹配(p matches s),我的理解是s在p中存在,而不是p在s中存在。那么如果 p=
".*" 匹配 s="ab", 则p=".*c" 也应该匹配 s="ab"啊。
【在 t*****9 的大作中提到】 : s是内容 p是模板 p没有得到匹配 当然是false : : *'
|
c*******0 发帖数: 162 | 5 1. 对于string s和string p, p是一个pattern,所谓匹配,意思是在s中可以找到一
个p。这个基本的概念你似乎没有搞清楚。
2. 另外,在正则表达式中, *表示前面一个字符出现0到无穷多次。所以,s=“aab”
,p=“c*a*b” 是true. |
d*********g 发帖数: 38 | |