LeetCode--97. Interleaving String
来源:互联网 发布:聚宝网络 编辑:程序博客网 时间:2024/06/08 16:44
【题目】
Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2.
For example,
Given:
s1 = “aabcc”,
s2 = “dbbca”,
When s3 = “aadbbcbcac”, return true.
When s3 = “aadbbbaccc”, return false.
【思路】
设S(i)表示长度为i的S3序列是否为S1和S2的交叉队列,D(i + 1)表示S3序列新添加的字符是否等于S1或S2序列新添加的字符,S(i + 1)= S(i) && D(i + 1)。可以得出这是一个动态规划问题,除此之外该问题存在回溯,因此我们用备忘录方法进行解决。设table[i][j]表示S3是否为长度为i的S1和长度为2的S2的交叉队列,得到状态转换方程:
table[i][j] = (table[i][j- 1] && D(i + j)) || (table[i- 1][j] && D(i + j));
【c++代码】
class Solution {public: bool isInterleave(string s1, string s2, string s3) { int i = 0, j = 0; bool table[s1.length() + 1][s2.length() + 1]; if (s3.length() == s1.length() + s2.length()) { for (; i <= s1.length(); i++) { for (j = 0; j <= s2.length(); j++) { if (i == 0 && j == 0) { table[i][j] = true; } else if (i == 0) { table[0][j] = table[0][j- 1] && (s3[j- 1] == s2[j - 1]); } else if (j== 0) { table[i][0] = table[i- 1][0] && (s3[i - 1] == s1[i - 1]); } else { table[i][j] = (table[i][j - 1] && (s3[i + j - 1] == s2[j - 1])) || (table[i - 1][j] && (s3[i + j - 1] == s1[i - 1])); } } } } return table[s1.length()][s2.length()]; }};
0 0
- LeetCode 97. Interleaving String
- [LeetCode]97.Interleaving String
- [Leetcode] 97. Interleaving String
- LeetCode --- 97. Interleaving String
- [leetcode] 97.Interleaving String
- [leetcode] 97.Interleaving String
- leetcode 97. Interleaving String
- Leetcode - 97.Interleaving String
- leetcode 97. Interleaving String
- LeetCode 97. Interleaving String
- LeetCode 97. Interleaving String
- Leetcode:97. Interleaving String
- Leetcode 97. Interleaving String
- [leetcode] 97. Interleaving String
- LeetCode-97.Interleaving String
- [LeetCode] 97. Interleaving String
- leetcode 97.Interleaving String
- 97. Interleaving String ,leetcode
- Socket的accept函数解析
- C# 网络爬虫类
- 产品学习:京津冀智能化大厦交换平台
- Oracle的Timestamp数据类型与Mysql的Timestamp数据类型兼容的经验
- 编写可读代码
- LeetCode--97. Interleaving String
- .Net4.0 任务(Task)
- Android ---Intent
- BZOJ2653 middle
- MD5加密算法原理
- linux 下的时间获取函数
- react画廊应用的结构
- ubuntu chrome安装adobe flash player解决方案
- Oracle数据库安装