scramble string (使用动态规划和递归做)
来源:互联网 发布:淘宝怎样设置运费模板 编辑:程序博客网 时间:2024/06/05 10:17
点击打开链接
class Solution {
public:
bool solve(string s1, string s2, int left1, int right1, int left2)//串的位置
{
int dist = right1 - left1;
if (dist == 1)
{
return s1[left1] == s2[left2];
}
int last2 = left2 + dist;
int freq[26];
fill(freq, freq + 26, 0);
for (int i = 0; i <dist; i++)
freq[s1[left1 + i]-'a']++;
for (int i = 0; i <dist; i++)
freq[s2[left2 + i] - 'a']--;
for (int i = 0; i < 26; i++)
{
if (freq[i])
return false;
}
for (int i = 1; i <dist; i++)
{
if (solve(s1, s2, left1, left1 + i, left2) && solve(s1, s2, left1 + i, right1, left2 + i))
return true;
if (solve(s1, s2, left1, left1 + i, last2 - i) && solve(s1, s2, left1 + i, right1, left2))
return true;
}
return false;
}
int dp[100][100][100];
bool isScramble(string s1, string s2) {//深度优先搜索
//表示dp[n][i][j]长度为n的起点分别为i和j的是否符合
fill(&dp[0][0][0], &dp[0][0][0] + 100* 100* 100, 0);
int len = s1.size();
for (int i = 0; i <len; i++)
{
for (int j = 0; j <len; j++)
{
//初始化边界条件
dp[1][i][j] = (s1[i] == s2[j]);
}
}
for (int n = 1; n <=len; n++)
{
for (int i = 0; i+n<=len; i++)
{
for (int j = 0; j+n<=len; j++)
{
for (int k = 1; k < n; k++)
{
if ((dp[k][i][j]&&dp[n-k][i+k][j+k])||(dp[k][i][j-k+n]&&dp[n-k][i+k][j]))
{dp[n][i][j]=true;
break;}
}
}
}
}
return dp[len][0][0];
}
};
- scramble string (使用动态规划和递归做)
- Scramble String 动态规划
- leetcode 87 Scramble String(动态规划)
- LeetCode Scramble String(动态规划)
- 算法学习之动态规划(leetcode 87. Scramble String)
- LeetCode题目:Scramble String,三维动态规划
- 动态规划——scramble-string
- 87. Scramble String(三维动态规划+形似map的数组使用技巧)
- leetcode 87 Scramble String(递归+剪枝)
- 算法刷题心得:动态规划 scramble-string
- 动态规划和递归
- 递归和动态规划
- 动态规划和递归
- 递归和动态规划
- 递归和动态规划
- 递归和动态规划
- 递归和动态规划(1)
- 递归和动态规划(一)
- 7.字典
- java-第一篇
- JDBC学习(一)
- Qt界面之QML优秀学习网站
- MYSQL客户端连接和断开MySQL服务器
- scramble string (使用动态规划和递归做)
- 网络直播进入整合期,三大模式值得关注
- 二叉树的镜像
- css判断ie版本才引用样式或css文件
- Vue.js的小例子--随便写的
- 廖雪峰Python教程1轮还没学明白的(2) -- 面向对象高级编程 -- 定制类 -- 实现Fib数列的__getitem__()/切片方法
- LeetCode 617. Merge Two Binary Trees (C++)
- 迁移到Android Studio 3.0
- SQL相关查询