題目描述
請實現乙個函式用來匹配包括』.』和」的正規表示式。模式中的字元』.』表示任意乙個字元,而」表示它前面的字元可以出現任意次(包含0次)。 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串」aaa」與模式」a.a」和」abaca」匹配,但是與」aa.a」和」ab*a」均不匹配樣例輸入
「a」,」ab*a」樣例輸出
false思路
1當字串和模式串同時變為空的時候,匹配成功。返回true* 2當字串不為空,模式串為空的時候,匹配不成功。返回false
* 3當字串為空,模式串不為空的時候,可能匹配成功。因為*代表0次或多次。
* * 當模式串下乙個字元不為*的時候
* 1直接比較字串和模式串的第乙個字元,如果相等,字串和模式串同時後移一位。
* 2接著比較,相等。重複1.不相等直接返回false
* * 當模式串下乙個字元為*的時候 且匹配成功
* 1字串不移位,模式串後移兩位(*表示出現0次的時候)
* 2字串移動一位,模式串後移兩位(*表示出現1次的時候)
* 3字串後移一位,模式串不動(*表示出現超過2次的時候)
* 當模式串下乙個字元為*的時候 且匹配不成功 字串後移一位,模式串後移兩位,x*,跳過*
*
package regex;
/** * 請實現乙個函式用來匹配包括'.'和''的正規表示式。 模式中的字元'.'表示任意乙個字元,而''表示它前面的字元可以出現任意次(包含0次)。
* 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串"aaa"與模式"a.a"和"abaca"匹配, 但是與"aa.a"和"ab*a"均不匹配
* *@author administrator
* 思路:
* 1當字串和模式串同時變為空的時候,匹配成功。返回true
* 2當字串不為空,模式串為空的時候,匹配不成功。返回false
* 3當字串為空,模式串不為空的時候,可能匹配成功。因為*代表0次或多次。
* * 當模式串下乙個字元不為*的時候
* 1直接比較字串和模式串的第乙個字元,如果相等,字串和模式串同時後移一位。
* 2接著比較,相等。重複1.不相等直接返回false
* * 當模式串下乙個字元為*的時候 且匹配成功
* 1字串不移位,模式串後移兩位(*表示出現0次的時候)
* 2字串移動一位,模式串後移兩位(*表示出現1次的時候)
* 3字串後移一位,模式串不動(*表示出現超過2次的時候)
* *
* 當模式串下乙個字元為*的時候 且匹配不成功 字串後移一位,模式串後移兩位,x*,跳過*
* */
public
class
match ;
char pattern=;
solution s=new solution();
system.out.println(s.match(str,pattern));
}}class solution
return matchto(str,0, pattern,0);
}public
boolean
matchto(char str,int strindex ,char pattern,int patternindex)
if(strindex!=str.length&&patternindex==pattern.length)
//模式串的下乙個字元為*
if((patternindex+1
1]=='*'))else
return matchto(str,strindex, pattern,patternindex+2);
} //模式串下乙個字元不為*
if((strindex!=str.length)&&str[strindex]==pattern[patternindex]||(pattern[patternindex]=='.'&&(strindex!=str.length)))
return
false;//匹配不成功
}}
正規表示式 匹配
字串 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...