leetcode在力扣 App 中打开
调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
中等
相关标签
相关企业
提示

无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同。

示例 1:

 输入:S = "qwe"
 输出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]

示例 2:

 输入:S = "ab"
 输出:["ab", "ba"]

提示:

  1. 字符都是英文字母。
  2. 字符串长度在[1, 9]之间。
通过次数
39K
提交次数
48K
通过率
81.1%

相关标签

相关企业

提示 1
方法1:假设你有abc的所有排列。你怎么用它来得到abcd的所有排列?

提示 2
方法1:abc的排列组合表示abc的所有组合方式。现在,我们要创建abcd的所有组合方式。选择abcd的特定组合,如bdca。这个bdca字符串也代表abc的一种排列方式:删除d,你会得到bca。那么给定字符串bca,你是否可以创建包含d 的所有“相关”排列组合?

提示 3
方法1:给定一个字符串,比如bca,可以通过将d 插入到每个可能的位置:dbca、bdca、bcda、bcad,来创建abcd(其中abc顺序一定)的所有排列组合。给定abc的所有排列,你可以创建所有abcd的排列吗?

提示 4
方法1:你可以通过计算abc的所有排列,然后在每个可能的位置插入d,从而创建abcd的所有排列。

提示 5
方法2:如果你拥有两个字符所有排列的子串,可以生成三个字符全排列的子串吗?

提示 6
方法2:生成一个abcd的全排列,需要选择一个初始字符。它可以是a、b、c或d。然后你可以排列其余的字符。如何使用这种方法生成完整字符串的所有排列?

提示 7
方法 2:要生成abcd的所有排列组合,请选择每个字符(a、b、c、d)作为首字符。排列剩余的字符并追加首字符。如何排列剩余的字符?使用遵循相同逻辑的递归过程。

提示 8
方法 2:你可以通过让递归函数返回字符串列表来实现该方法,然后在它上面追加首字符。或者,你可以将前缀下推到递归调用中。

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
0 人在线
行 1,列 1
S =
"qwe"
Source