查看: 3452| 回复: 14
跳转到指定楼层
上一主题 下一主题
收起左侧

求问scramble string和anagram的区别

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
最近刷leetcode的时候碰到了scramble string的问题,很自然地联想到了anagram,因为想搞懂这两者的区别是什么。研究了leetcode题目的描述和discussion并且google了并没有得到很好的答案,问题主要集中在两个方面:1. recursively分substring的时候左右尺寸最多只能相差1么   比如:abcde -->a/bcde..... 然后在递归是可以的么
2.第二点是swap的时候,选一个,非叶节点swap,之后如果children还是非叶节点 还要继续recursively swap么  比如: abc                                                  bca                                  cba
                                                                                                                                                                        /  \                                                  /  \                                  /  \
                                                                                                                                                                       a    bc            ======>                 bc  a        ======>      cb    a
                                                                                                                                                                             / \                                            /  \                                 / \
                                                                                                                                                                            b   c                                         b    c                              c   b
类似这样的是不能停在中间某一步 必须recursive到底的么?

因为题目不理解清楚也没有办法做  所以希望大家做过的大家能够解答一下疑惑  谢谢了!


上一篇:求问一道bit manipulation的题目
下一篇:转行小白关于leetcode的问题
推荐
ilnlh 2014-7-7 04:55:47 | 只看该作者
全局:
1. 左右子树不是只能相差1
2. 可以继续swap子树上的节点

同样的字符集,anagram 要比 scrambled string 多,比如abcde和bdaec是anagram 但不互为scrambled string;另外,可以看看这个:https://oj.leetcode.com/discuss/3632/any-better-solution
回复

使用道具 举报

全局:
stellari 发表于 2015-7-13 20:43
请注意我说的是第二个“答案”,也就是Answers中的第二个。

answered Aug 30, 2014 by dtx0 (960 points)
这个吗?前十几个答案我都扫过了。DP的都是四层循环,写法不一样但是都是O(N^4),也包括这个。
回复

使用道具 举报

推荐
stellari 2015-7-13 20:43:51 | 只看该作者
全局:
zhuli19901106 发表于 2015-7-13 20:10
不对啊,那个是递归解法,理论上应该是复杂度应该是O(3^N),虽然经过剪枝效率也可以很好,但不是多项式级 ...

请注意我说的是第二个“答案”,也就是Answers中的第二个。
回复

使用道具 举报

🔗
 楼主| 呵呵君 2014-6-3 09:08:38 | 只看该作者
全局:
真心求解答
回复

使用道具 举报

🔗
sunnyroom 2014-7-3 16:12:57 | 只看该作者
全局:
楼主知道区别了吗?
我也没看懂有啥区别。
回复

使用道具 举报

🔗
 楼主| 呵呵君 2014-7-4 07:39:43 | 只看该作者
全局:
sunnyroom 发表于 2014-7-3 16:12
楼主知道区别了吗?
我也没看懂有啥区别。

没有啊。。。跳过了  搜了好久都没搜到答案
回复

使用道具 举报

🔗
 楼主| 呵呵君 2014-7-10 09:31:48 | 只看该作者
全局:
ilnlh 发表于 2014-7-7 04:55
1. 左右子树不是只能相差1
2. 可以继续swap子树上的节点

谢谢解答哈 再追问一下哈 是必须 继续recursively swap到底么

点评

给定一个构造树,任意步swap  发表于 2014-7-11 04:31
回复

使用道具 举报

🔗
 楼主| 呵呵君 2014-7-11 06:50:13 | 只看该作者
全局:
ilnlh 发表于 2014-7-7 04:55
1. 左右子树不是只能相差1
2. 可以继续swap子树上的节点

好的哈 谢谢了  没想到是UCI的学长哈
回复

使用道具 举报

🔗
zhuli19901106 2015-7-13 19:40:29 | 只看该作者
全局:
Lintcode说这题有O(n^3)复杂度解?
回复

使用道具 举报

🔗
stellari 2015-7-13 19:57:47 | 只看该作者
全局:
zhuli19901106 发表于 2015-7-13 19:40
Lintcode说这题有O(n^3)复杂度解?

O(N^3)的解法就在五楼给出的链接里,第二个答案。
回复

使用道具 举报

🔗
zhuli19901106 2015-7-13 20:10:24 | 只看该作者
全局:
stellari 发表于 2015-7-13 19:57
O(N^3)的解法就在五楼给出的链接里,第二个答案。

不对啊,那个是递归解法,理论上应该是复杂度应该是O(3^N),虽然经过剪枝效率也可以很好,但不是多项式级的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表