97. Interleaving String
2016-08-27 15:26
323 查看
/* dp[i][j] 代表s3前i+j个字符 是否能够用s1的前 i个字符 和s2的前j个字符 表示 i j 代表字符的个数 不是下标 dp[0][0] =true dp[i][0]=(dp[i-1][0]&&s1[i-1]==s3[i-1]) dp[0][j]=(dp[0][j-1]&&s2[j-1]==s3[j-1]) dp[i][j]=(dp[i-1][j]&&s1[i-1]==s3[i+j-1])||(dp[i][j-1]&&s2[j-1]==s3[i+j-1]) */ class Solution { public: bool isInterleave(string s1, string s2, string s3) { if(s1.length()+s2.length()!=s3.length()) return false; vector<vector<bool>> dp(s1.length()+1,vector<bool>(s2.length()+1,false)); for(int i=0;i<=s1.length();i++) for(int j=0;j<=s2.length();j++) { if(i==0&&j==0) dp[i][j]=true; else if(i==0) dp[0][j]=dp[0][j-1]&&s2[j-1]==s3[j-1]; else if(j==0) dp[i][0]=dp[i-1][0]&&s1[i-1]==s3[i-1]; else dp[i][j]=(dp[i-1][j]&&s1[i-1]==s3[i+j-1])||(dp[i][j-1]&&s2[j-1]==s3[i+j-1]); } return dp[s1.length()][s2.length()]; } };
相关文章推荐
- Python学习笔记之四——类型
- 关于jdbc的学习
- Miller-Rabin质数测试
- [C/C++笔面试]自己实现Strlen,my_strlen最优解
- STL---heap概述,make_heap,sort_heap,pop_heap,push_heap
- POJ 3159 Candies
- java.lang.IncompatibleClassChangeError
- SPI对外部w25Q64的读写
- java8 lambda表达式 (1)
- python 书籍
- linux yum命令详解-转
- 高斯消元(整数型)模板 && 高斯消元(实数型)模板 && 高斯消元(异或型)
- union 关键字的用法与struct
- S3C2440芯片手册词汇
- Codeforces Round #276 (Div. 2)-C. Bits
- springMvc在web.xml文件的配置
- 在运行Hibernate Hello World程序的时候,抛如下错误: view plain Exception in thread "main" org.hibernate.exception.LockAcquisitionException 解决方法
- Eclispe清除项目缓存无需删除.metadata文件
- 我的第一个JAVA程序
- 各种排序方法