正则表达式匹配
题号:NC262162
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配

数据范围:
1.str 只包含从 a-z 的小写字母。
2.pattern 只包含从 a-z 的小写字母以及字符 . 和 *,无连续的 '*'。
3. 1 \leq str.length \leq 1000 \
4. 1 \leq pattern.length \leq 1000 \

输入描述:

第一行输入一个字符串 str。
第二行输入一个字符串 pattern。    

输出描述:

输出两个字符串的匹配结果,如果匹配则输出 true ,否则输出 false
示例1

输入

复制
aaa
a*a

输出

复制
true
示例2

输入

复制
aab
c*a*b

输出

复制
true
示例3

输入

复制
a
.*

输出

复制
true
示例4

输入

复制
aaab
a*a*a*c

输出

复制
false