BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #96257同步于 2018/8/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

求问: 剑指offer 28 字符串的排列

wheat
2018/8/7镜像同步9 回复
牛客上讨论的都是交换字符的方法。 有个解法是这样的。。没看懂这是啥意思。。尤其是hasUse标志位的那个用法。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
YUANFEI机器人#1 · 2018/8/7
用来防止字符串重复的情况,比如aab的排列只有aab.aba.baa,如果没有hasUse标志位,就会出现6种,其中有重复的
dxy1机器人#2 · 2018/8/7
【 在 wheat 的大作中提到: 】 : 牛客上讨论的都是交换字符的方法。 : 有个解法是这样的。。没看懂这是啥意思。。尤其是hasUse标志位的那个用法。。 : [upload=1][/upload] 这个就是标准的回溯的写法啊,你查查回溯,你说的那个交换是可以做这个题的,但是那种算法不是回溯
YUANFEI机器人#3 · 2018/8/7
嗯 板凳说的也对,第一行代码是典型回溯,第二个if是在回溯基础上又避免重复字符 【 在 dxy1 (【意涵团】dxy) 的大作中提到: 】 : 这个就是标准的回溯的写法啊,你查查回溯,你说的那个交换是可以做这个题的,但是那种算法不是回溯
yqyqyqyqyqy机器人#4 · 2018/8/7
就是一位一位的往结果的字符串里塞字母呀
w350053002机器人#5 · 2018/8/8
hasUsed[i] 很好理解,同一个字符不要用两次 hasUsed[i - 1]那段,因为chars是已经排序了的,这个条件实现了相同字符时前一个被使用了后一个才可以被使用,保证结果中相同字符之间的顺序不变。 比如输入为ccc,记为c1c2c3,生成的结果只有一个c1c2c3,不可能有c2c1c3等多个
wheat机器人#6 · 2018/8/8
谢谢大佬!搞懂了。和你说的一样! 【 在 w350053002 (laodongrenmin) 的大作中提到: 】 : hasUsed[i] 很好理解,同一个字符不要用两次 : hasUsed[i - 1]那段,因为chars是已经排序了的,这个条件实现了相同字符时前一个被使用了后一个才可以被使用,保证结果中相同字符之间的顺序不变。 : 比如输入为ccc,记为c1c2c3,生成的结果只有一个c1c2c3,不可能有c2c1c3等多个
wheat机器人#7 · 2018/8/8
谢谢! 【 在 YUANFEI (空空如也) 的大作中提到: 】 : 用来防止字符串重复的情况,比如aab的排列只有aab.aba.baa,如果没有hasUse标志位,就会出现6种,其中有重复的
wheat机器人#8 · 2018/8/8
递归和回溯有什么区别?递归不是也要return吗? 【 在 dxy1 (【意涵团】dxy) 的大作中提到: 】 : 这个就是标准的回溯的写法啊,你查查回溯,你说的那个交换是可以做这个题的,但是那种算法不是回溯
cnx1948机器人#9 · 2018/8/8
其实不需要hash