动态规划——交叉字符串
来源:互联网 发布:液晶电视修理用编程器 编辑:程序博客网 时间:2024/05/18 15:30
参考资料:
http://blog.csdn.net/smallfish_love/article/details/52277838
参考答案:
http://www.jiuzhang.com/solution/interleaving-string
public class InterleavingString {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub}public boolean isInterleave(String s1, String s2, String s3){if(s1.length()+s2.length()!=s3.length())return false;boolean [][] interleaved= new boolean[s1.length()+1][s2.length()+1];//先确定取字符串的前0个字符的情况interleaved[0][0]=true;//s2取前0个字符的情况for(int i=1;i<=s1.length();i++){if(s1.charAt(i-1)==s3.charAt(i-1)&& interleaved[i-1][0])interleaved[i][0]=true;}//s1取前0个字符的情况for(int j=1;j<=s2.length();j++){if(s2.charAt(j-1)==s3.charAt(j-1)&& interleaved[0][j-1])interleaved[0][j]=true;}//剩下的情况for(int i=1;i<=s1.length();i++){for(int j=1;j<=s2.length();j++){//情况一:当前s3的字符与当前s1的字符相匹配,则必须要满足s1当前字符(不包括当前字符)之前的字符串已匹配上if((s3.charAt(i+j-1)==s1.charAt(i-1)&& interleaved[i-1][j])||//情况二:当前s3的字符与当前s2的字符相匹配,则必须要满足s2当前字符(不包括当前字符)之前的字符串已匹配上(s3.charAt(i+j-1)==s2.charAt(j-1)&& interleaved[i][j-1]))interleaved[i][j]=true;}}return interleaved[s1.length()][s2.length()];}}
阅读全文
0 0
- 动态规划——交叉字符串
- 利用动态规划解决交叉字符串问题
- 动态规划_交叉字符串_1
- 动态规划-----两个字符串交叉组成第三个字符
- 交错字符串——动态规划
- 动态规划——字符串编辑问题
- 字符串、动态规划——最长公共子串LCS
- 动态规划——字符串的交错组成
- 动态规划—求最长字符串子序列
- 动态规划——什么是动态规划?
- 合法字符串 【动态规划】
- 字符串计数(动态规划)
- 回文字符串-动态规划
- 动态规划--字符串拆分
- 动态规划--字符串拆分
- 动态规划 — LIS
- 源字符串转变成目标字符串的编辑次数——动态规划方法实现
- 动态规划之回文字符串
- SSM的整合
- xml和json的区别比较
- myEclipse项目部署点击Finish按钮没反应
- 微软官方caffe之 matlab接口配置
- 特征选择算法简介
- 动态规划——交叉字符串
- java中volatile关键字的含义
- opencv学习笔记-4、调整图像亮度和对比度
- Unity如何使用WWW类和协程完成图片、视频下载播放
- 滑动窗口的最大值
- android Binder 机制学习
- 行为型模式之观察者模式实现
- 大型网站架构演化
- Android EditText属性API