52 正規表示式的匹配

2021-10-02 09:33:22 字數 1137 閱讀 1199

請實現乙個函式用來匹配包括』.『和』『的正規表示式。模式中的字元』.『表示任意乙個字元,而』'表示它前面的字元可以出現任意次(包含0次)。 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串"aaa"與模式"a.a"和"abaca"匹配,但是與"aa.a"和"ab*a"均不匹配

//s, pattern都是字串

function

match

(s, pattern)

當模式中的第二個字元不是「*」時

1.如果字串中的第乙個字元和模式中的第乙個字元相匹配,那麼在字串和模式上都向後移動乙個字元,然後匹配剩餘的字串和模式。

2.如果字串中的第乙個字元和模式中的第乙個字元不相匹配,則直接返回false。

當模式中第二個字元是「*」時,有多種不同匹配方式。

1.在模式上上向後移動兩個字元,相當於x*被忽略。因為「*」可以匹配字串中的0個字元。

2.如果模式中第乙個字元和字串中的第乙個字元相匹配,則在字串上向後移動乙個字元。

這種情況下可以有兩種選擇:

a. 模式上向後移動兩個字元

b. 模式保持不變

//s, pattern都是字串

function

match

(s, pattern)

function

matchstr

(s, istr, pattern, ipattern)

if(istr !== s.length && ipattern == pattern.length)

if(pattern[ipattern +1]

==="*"

)return

matchstr

(s, istr, pattern, ipattern +2)

;}if(s[istr]

=== pattern[ipattern]

|| pattern[ipattern]

==='.'

&& istr !== s.length)

return

false

;}

52 正規表示式匹配

題目 請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 思路 當模式中的第二...

( )52 正規表示式匹配

請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 leetcode對應題目 ...

52 正規表示式匹配

題目描述 請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 分析 現在只考慮...