请实现一个函数用来匹配包括’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 数据范围: 1.str 只包含从 a-z 的小写字母。 2.pattern 只包含从 a-z 的小写字母以及字符 . 和 *,无连续的 ‘*’。 3. 4.

区块链毕设网qklbishe.com为您提供问题的解答

请实现一个函数用来匹配包括’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
数据范围:
1.str 只包含从 a-z 的小写字母。
2.pattern 只包含从 a-z 的小写字母以及字符 . 和 *,无连续的 ‘*’。
3. 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配             数据范围:       1.str 只包含从 a-z 的小写字母。         2.pattern 只包含从 a-z 的小写字母以及字符 . 和 *,无连续的 '*'。         3.    4.
4. 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配             数据范围:       1.str 只包含从 a-z 的小写字母。         2.pattern 只包含从 a-z 的小写字母以及字符 . 和 *,无连续的 '*'。         3.    4.

importjava.util.*;
publicclassMain{
    publicstaticvoidmain(String[] args){
         Scanner in =newScanner(System.in);
        String str=in.next();
        String pattern=in.next();
        System.out.println(match(str,pattern));
    }
    publicstaticbooleanmatch (String str, String pattern) {
        intn1 = str.length();
        intn2 = pattern.length();
        //dp[i][j]表示str前i个字符和pattern前j个字符是否匹配 fast-template
        boolean[][] dp =newboolean[n1 +1][n2 +1];
        //遍历str每个长度
        for(inti =0; i <= n1; i++) {
            //遍历pattern每个长度
            for(intj =0; j <= n2; j++) {
                //空正则的情况
                if(j ==0) {
                    dp[i][j] = (i ==0?true:false);
                    //非空的情况下 星号、点号、字符
                }else{
                    if(pattern.charAt(j -1) !=’*’) {
                        //当前字符不为*,用.去匹配或者字符直接相同
                        if(i >0&& (str.charAt(i -1) == pattern.charAt(j -1) ||
                                      pattern.charAt(j -1) ==’.’)) {
                            dp[i][j] = dp[i -1][j -1];
                        }
                    }else{
                        //碰到*
                        if(j >=2) {
                            dp[i][j] |= dp[i][j -2];
                        }
                        //若是前一位为.或者前一位可以与这个数字匹配
                        if(i >=1&& j >=2&& (str.charAt(i -1) == pattern.charAt(j -2) ||
                                                 pattern.charAt(j -2) ==’.’)) {
                            dp[i][j] |= dp[i -1][j];
                        }
                    }
                }
            }
        }
        returndp[n1][n2];
    }
}

37:22

以上就是关于问题请实现一个函数用来匹配包括’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配
数据范围: 1.str 只包含从 a-z 的小写字母。 2.pattern 只包含从 a-z 的小写字母以及字符 . 和 *,无连续的 ‘*’。 3.
4.的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 请实现一个函数用来匹配包括’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配 数据范围: 1.str 只包含从 a-z 的小写字母。 2.pattern 只包含从 a-z 的小写字母以及字符 . 和 *,无连续的 ‘*’。 3. 4.