2w网站建设模式,wordpress 常数函数,举例说明什么是网络营销,专做新车分期的网站代表任意一个字符#xff0c;*代表任意一串字符#xff0c;判断两个字符串是否匹配#xff1f; 如题#xff0c;代表任意一个字符#xff0c;*代表任意一串字符#xff0c;判断两个字符串是否匹配#xff1f;假如a字符串为#xff1a;as*bncb,b字符串为asdfgvbbnchb,则…·代表任意一个字符*代表任意一串字符判断两个字符串是否匹配 如题·代表任意一个字符*代表任意一串字符判断两个字符串是否匹配假如a字符串为as*bnc·b,b字符串为asdfgvbbnchb,则这俩个字符串匹配。public class MyTest{public static void main(String[] args) {System.out.println(isMatch(as111111dfgvbbnchb,as*bnc.b));}/*** 动态规划法判断普通字符串是否与通配符字符串匹配。** * 算法思路* 设s为普通字符串p为通bai配符字符串字符串中字符编号以0起始。* 申请布尔型数组 dp[s.length1][p.length1]。* 1. dp[0][0]表示s为空串、p为空串时是否匹配显然为truedp[0][0]true。* 2. dp[0][j1]0* 当dp[0][j]true且p[j]*时dp[0][j1]true。* 如果dp[0][j]false即p[0..j-1]已经不能与空串匹配了显然加上p[j]* 也不能匹配。* 如果p[j]!*则p[j]必须与一个字符匹配而s为空串显然不能匹配。* 3. dp[i1][j1]表示s[0..i]与p[0..j]是否匹配。* 3.1 如果p[j]*那么可以有两种匹配方式* 方式1. p[j]与s[i]匹配s[i]被匹配掉后还需判断s[0..i-1]是否与* p[0..j]匹配故dp[i1][j1]dp[i][j1]。* 方式2. p[j]不与s[i]匹配这时还需判断s[0..i]是否与p[0..j-1]匹配* 故dp[i1][j1]dp[i1][j]。* 综合两种情况dp[i1][j1]dp[i][j1]||dp[i1][j]。* 3.2 如果p[j].则p[j]必须和s[i]匹配还需判断s[0..i-1]是否与* p[0..j-1]匹配故dp[i1][j1]dp[i][j]。* 3.3 如果p[j]为其他字符并且与s[i]相同则p[j]必须和s[i]匹配还需判断* s[0..i-1]是否与p[0..j-1]匹配故dp[i1][j1]dp[i][j]。* 这种情况可以与情况3.2合并。* 最终 dp[s.length][p.length] 即表示s与p是否匹配。* ** param s* 普通字符串。* param p* 通配符字符串。* return 如果普通字符串与通配符字符串匹配则返回true否则返回false。*/public static boolean isMatch(String s,String p) {boolean[][] dp new boolean[s.length()1][p.length()1];dp[0][0]true;for(int j 0;jif(dp[0][j] p.charAt(j) *) {dp[0][j1] true;}}for(int i 0;i s.length();i) {for(int j 0;j p.length();j) {if(p.charAt(j) *) {dp[i1][j1] dp[i][j1]|| dp[i1][j];}else if(p.charAt(j) . || p.charAt(j) s.charAt(i)) {dp[i1][j1] dp[i][j];}}}return dp[s.length()][p.length()];}}