劍指Offer 052正規表示式匹配

2021-09-25 10:11:00 字數 797 閱讀 5387

052正規表示式匹配

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

方法:遞迴法

思路:1.如果字串的第乙個跟模式的第乙個相同,模式第二個為時,分為3種情況

(1)"*"表示之前出現了0次,就是x作廢,從之後開始算,模式後移兩位

(2)表示出現了一次,於是字串後移一位,模式後移兩位繼續

(3)表示出現了很多次,字串後移一位繼續比較

2.如果字串第乙個跟模式第乙個不同,模式第二個為*時,模式後移兩位繼續比較

ps:寫遞迴函式,注意遞迴的終止條件

(1)字串和模式都到末尾,返回true;

(2)模式到末尾,字串沒到末尾,返回false;

**:

public boolean match(char str, char pattern) 

public boolean ispipei(char str,char pattern,int i,int j)else

}//如果模式第二個字元不是「*」時

if((i!=str.length&&str[i]==pattern[j])

||(pattern[j]=='.'&&i!=str.length))

return false;

}

劍指offer 正規表示式匹配

請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 abaca 匹配,但是與 aa.a 和 aba 均不匹配 由於只涉及兩種正規表示式的匹配,...

劍指Offer 正規表示式匹配

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

劍指offer 正規表示式匹配

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