題目描述:
給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 『.』 和 『*』 的正規表示式匹配。
『.』 匹配任意單個字元
『*』 匹配零個或多個前面的那乙個元素
所謂匹配,是要涵蓋 整個 字串 s的,而不是部分字串。
方法一:回溯法
這種匹配思路其實就是不斷地減掉s和p的可以匹配首部,直至乙個或兩個字串被減為空的時候,根據最終情況來得出結論。
class
solution
boolean flag=
!s.isempty()
&&(s.
charat(0
)==p.
charat(0
)||p.
charat(0
)=='.');if
(p.length()
>=
2&&p.
charat(1
)=='*')
else
if(flag)
else
}}
方法二:動態規劃法
class
solution
}for
(int i=
0;i)else
if(p.
charat
(j)==
'*')
else}}
}return dp[slen]
[plen];}
}
正規表示式 匹配
字串 void abtr quint32 ab 表示乙個正規表示式 template class bidirectionaliterator class allocator std allocator sub match bidirectionaliterator class match resul...
正規表示式匹配
請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 解法 首先要想到用遞迴處理...
正規表示式匹配
請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 class solutio...