1package
algorithms;23
/**4
* 請實現乙個函式用來匹配包括'.'和'*'的正規表示式。 模式中的字元'.'表示任意乙個字元,而'*'表示它前面的字元可以出現任意次(包含0次)。
5* 在本題中,匹配是指字串的所有字元匹配整個模式。 例如,字串"aaa"與模式"a.a"和"ab*ac*a"匹配,但是與"aa.a"和"ab*a"均不匹配6*
7* 8*
*/910public
class
stringmatch
1415
public
boolean matchcore(char str, int i, char pattern, int
j) 19
if (i != str.length - 1 && j == pattern.length - 1)
20return
false;21
//一種較為複雜的情況 即模式的字元後面乙個字元為*
22if (j < pattern.length - 1 && pattern[j + 1] == '*') else
30return matchcore(str, i, pattern, j + 2);
3132}33
//如果模式的字元後乙個不是*時,該情況較為簡單 直接比較即可
34if (i < str.length && j < pattern.length && (str[i] == pattern[j] || (pattern[j] == '.' && i 35return matchcore(str, i + 1, pattern, j + 1);
36return
false;37
}3839public
static
void
main(string args) ;
41char pattern = ;
42 stringmatch ma = new
stringmatch();
43system.out.println(ma.match(str, pattern));44}
45 }
正規表示式 匹配
字串 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...