美文网首页
用动态规划解决字符串问题(1)

用动态规划解决字符串问题(1)

作者: 大道至简_6a43 | 来源:发表于2020-09-03 21:01 被阅读0次

dp[i][j]表示s的前i个字符串和p的前j个字符是否匹配,首先初始化,也就是假设s为空字符,若p的每个位置为‘*’,则匹配空字符。

后面的递推方程的话,前面一个代表i和j可以直接匹配,则dp[i][j]的值和d[i - 1][j - 1]的一样。

后面一个中,分别代表*匹配掉s中对应的字符和不匹配s中的那个字符,即对应了‘*’可以匹配也可以不匹配。

下面的图片的练习地址为https://alchemist-al.com/algorithms/wildcard-matching

import java.util.Scanner;

public class tongpeifu_pipei {

public static void main(String[] args) {

Scanner sc =new Scanner(System.in);

String s = sc.next();

String p = sc.next();

int n=s.length();

int m=p.length();

boolean[][] dp=new boolean[n+1][m+1];//固定格式必须多一行一列

        dp[0][0]=true;//初始参考值必须为true

        for(int i=1;i<=m;i++){//子串的第一个为*时跟对方的空头比肯定是true

            if(p.charAt(i-1)=='*'){

dp[0][i]=true;

}else{

break;//

            }

}

for (int i =1; i <= n; ++i) {

for (int j =1; j <= m; ++j) {

if (p.charAt(j -1) =='*') {

//如果字符为“*”就考虑他前面跟上面的的

                    dp[i][j] = dp[i][j -1] || dp[i -1][j];

}else if (p.charAt(j -1) =='?' || s.charAt(i -1) == p.charAt(j -1)) {

//如果这两个字符相等或者模式串中的为通配符“?”则看前面那个字符的匹配结果就行了。

                    dp[i][j] = dp[i -1][j -1];

}

}

}

System.out.println(dp[n][m]);

}

}

这个格式看着更容易些

https://alchemist-al.com/algorithms/wildcard-matching

相关文章

  • 浅层理解动态规划及利用动态规划解决最长公共子串等问题

    动态规划基本思想 动态规划的工作原理是先解决子问题,再逐步解决大问题。 用动态规划解决旅游规划问题 目前面对的问题...

  • 用动态规划解决字符串问题(1)

    dp[i][j]表示s的前i个字符串和p的前j个字符是否匹配,首先初始化,也就是假设s为空字符,若p的每个位置为‘...

  • 什么是动态规划

    目录 动态规划解决了什么 什么是动态规划 典型的动态规划 1. 动态规划解决了什么 的思想就是将大问题拆分成小问题...

  • 动态规划

    问题 什么样的问题可以用动态规划解决?解决动态规划问题的一般思考过程是什么样的?贪心、分治、回溯、动态规划这四种算...

  • Java 算法 - 流浪剑客斯温(动态规划)

    题意 样例 注意事项 1.解题思路   这道题肯定使用动态规划来解决,解决动态规划的问题通常来说,难点在于动态规划...

  • 动态规划-0-1背包问题

    动态规划-0-1背包问题 动态规划(dynamic programming)是解决多阶段决策问题常用的最优化理论,...

  • 动态规划(1)

    什么动态规划 动态规划是一种解决棘手问题的方法,它将问题分成小问题,并着手先解决这些小问题 动态规划的使用场景 g...

  • 用动态规划解决通配符匹配字符串问题

    leetcode上这个题目出现了两次,基本都是要求答题者写代码完成 '*' 和 '?' 通配符的匹配。一下摘录其中...

  • 动态规划初步——背包问题

    动态规划认知 ​ 在问题满足最优性原理之后,用动态规划解决问题的核心就在于填表,表填写完毕,最优解也就找到。 ...

  • 算法学习收藏

    动态规划问题 动态规划(最优子结构和重叠子问题的比较) 动态规划解决01背包问题 01背包问题 最优二叉查找树 《...

网友评论

      本文标题:用动态规划解决字符串问题(1)

      本文链接:https://www.haomeiwen.com/subject/hjoosktx.html