LeetCode之Scramble String
来源:互联网 发布:广电网络是上市公司吗 编辑:程序博客网 时间:2024/06/05 18:45
/*动态规划法。设状态为 f[n][i][j],表示长度为 n,起点为 s1[i] 和起点为 s2[j] 两个字符串是否互为 scramble,则状态转移方程为f[n][i][j]} = (f[k][i][j] && f[n-k][i+k][j+k])|| (f[k][i][j+n-k] && f[n-k][i+k][j])。参考自:https://github.com/soulmachine/leetcode*/class Solution {public: bool isScramble(string s1, string s2) { if(s1.size() != s2.size()) return false; bool dp[s1.size()+1][s1.size()][s2.size()]; memset(dp, 0, sizeof(dp)); for(int i = 0; i < s1.size(); ++i){ for(int j = 0; j < s2.size(); ++j) dp[1][i][j] = (s1[i] == s2[j]); } for(int n = 1; n < s1.size() + 1; ++n){ for(int i = 0; i < s1.size(); ++i){ for(int j = 0; j < s2.size(); ++j){ for(int k = 1; k < n; ++k){ if((dp[k][i][j] && dp[n-k][i+k][j+k]) || dp[k][i][j+n-k] && dp[n-k][i+k][j]){ dp[n][i][j] = true; break; } } } } } return dp[s1.size()][0][0]; }};
0 0
- leetcode之Scramble String
- leetcode 之 Scramble String
- LeetCode之Scramble String
- LeetCode OJ 之 Scramble String
- LeetCode : Scramble String
- [LeetCode] Scramble String
- [LeetCode] Scramble String
- [Leetcode] Scramble String
- [leetcode] Scramble String
- LeetCode: Scramble String
- [LeetCode]Scramble String
- [leetcode]Scramble String
- Leetcode:Scramble String
- LeetCode-Scramble String
- LeetCode Scramble String
- [leetcode] Scramble String
- [LeetCode] Scramble String
- LeetCode - Scramble String
- 图像相似度测量与模板匹配总结
- (LeetCode)反转整数
- 树莓派使用无线网卡上网相关命令
- charAt() equals() replaceAll() Character Scanner() indexOf()
- Linux启动新进程的几种方法及比较
- LeetCode之Scramble String
- HDU 5303 多校第二场
- Android高仿QQ v4.7.0全新UI
- POJ 3278:Catch That Cow
- Office2016,mac破解版
- 【BZOJ】2243 染色
- Linux环境下的计算器
- Loader之AsyncTaskLoader(联系人短信)
- hdu 3172 Virtual Friends(map)