interleaving String
来源:互联网 发布:网络媒介论文 编辑:程序博客网 时间:2024/06/03 04:05
题意:给定三个序列S1,S2,S3,对于S1,S2和S3比较,看S1、S2是否是和S3间隔排序的,譬如,S1 = “aabcc”,S2=”dbbca”,S3=”aadbbcbcac”,则是满足条件的。
思路:动规。维护数组dp[s1.length][s2.length]。先初始化dp数组,再进行判断。
代码:
package com.interLeaving;public class InterLeaving { public boolean isInterLeaving(String s1 ,String s2 , String s3) { if(s1.length() + s2.length() != s3.length()) return false; boolean[][] dp = new boolean[s1.length()+1][s2.length()+1]; for (int i = 1; i <= s1.length() && s1.charAt(i-1) == s3.charAt(i-1); i++) dp[i][0] = true; for (int j = 1; j <= s2.length() && s2.charAt(j-1) == s3.charAt(j-1); j++) dp[0][j] = true; for(int i = 1 ; i <= s1.length() ; i++){ for(int j = 1 ; j <= s2.length() ; j++){ char c = s3.charAt(i+j-1); if(c == s1.charAt(i-1) && dp[i-1][j]) dp[i][j] = true; if(c == s2.charAt(j-1) && dp[i][j-1]) dp[i][j] = true; } } return dp[s1.length()][s2.length()]; } public static void main(String[] args) { String s1 = "aabcc"; String s2 = "dbbca"; String s3 = "aadbbcbcac"; System.out.println(new InterLeaving().isInterLeaving(s1, s2, s3)); }}
0 0
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- Interleaving String
- LeetCode 102 Binary Tree Level Order Traversal(二叉树的层次遍历)
- 浏览器证书基础介绍和如何测试本地浏览器的HTTPS的完备性
- 升级CentOS6.5安装镜像中的Linux内核版本
- 使用handler来实现计时操作
- .NET程序开发运行框架
- interleaving String
- 【Nginx】双代理以及复杂条件的rewrite跳转
- Learn Python The Hard Way 3: Ex01 A good first Program
- Ubuntu14.04下支持GTX1070 GPU加速Tensorflow环境配置
- VoLTE直接承载语音解决方案
- [NOIP模拟][LIS][数列映射][最短路][数论+图论][矩阵乘法][容斥原理]
- 网络工程师学习之路
- Java系列(三)__Java面向对象(1)
- 心情11/15