1. 题目

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

示例1:输入:S = "qwe"输出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]示例2:输入:S = "ab"输出:["ab", "ba"]提示:
字符都是英文字母。
字符串长度在[1, 9]之间。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/permutation-i-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 类似题目:LeetCode 46 全排列
class Solution {vector<string> ans;int n;
public:vector<string> permutation(string S) {n = S.size();vector<bool> visited(n,false);dfs(S,"",0, visited);return ans;}void dfs(string& S, string t, int count, vector<bool>& visited){if(count==n){ans.push_back(t);return;}for(int i = 0; i < n; ++i){if(!visited[i]){t.push_back(S[i]);visited[i] = true;dfs(S,t,count+1,visited);t.pop_back();visited[i] = false;}}}
};

程序员面试金典 - 面试题 08.07. 无重复字符串的排列组合(回溯)相关推荐

  1. 程序员面试金典 - 面试题 08.13. 堆箱子(DP)

    1. 题目 堆箱子.给你一堆n个箱子,箱子宽 wi.深 di.高 hi. 箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子. 实现一种方法,搭出最高的一堆箱子.箱堆的高度为每 ...

  2. 程序员面试金典 - 面试题 17.07. 婴儿名字

    题目难度: 中等 原题链接 今天继续更新程序员面试金典系列, 大家在公众号 算法精选 里回复 面试金典 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 每年,政府都会公布一万个最常见的婴 ...

  3. 程序员面试金典 - 面试题 05.07. 配对交换(位运算)

    1. 题目 配对交换.编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推). 示例1:输入:num = 2(或者0b10)输出 1 (或者 ...

  4. [Leetcode][程序员面试金典][面试题08.03][JAVA][魔术索引][递归][优化]

    [问题描述][简单] [解答思路] 1. 逐个查找 时间复杂度:O(N) 空间复杂度:O(1) public int findMagicIndex(int[] nums) {for (int i = ...

  5. 程序员面试金典 - 面试题 08.02. 迷路的机器人(DFS/动态规划)

    文章目录 1. 题目 2. 解题 2.1 DFS 2.2 动态规划 1. 题目 设想有个机器人坐在一个网格的左上角,网格 r 行 c 列. 机器人只能向下或向右移动,但不能走到一些被禁止的网格(有障碍 ...

  6. 程序员面试金典 - 面试题 08.14. 布尔运算(区间动态规划)

    1. 题目 给定一个布尔表达式和一个期望的布尔结果 result,布尔表达式由 0 (false).1 (true).& (AND). | (OR) 和 ^ (XOR) 符号组成. 实现一个函 ...

  7. 程序员面试金典 - 面试题 17.07. 婴儿名字(并查集)

    1. 题目 每年,政府都会公布一万个最常见的婴儿名字和它们出现的频率,也就是同名婴儿的数量. 有些名字有多种拼法,例如,John 和 Jon 本质上是相同的名字,但被当成了两个名字公布出来. 给定两个 ...

  8. 程序员面试金典 - 面试题 08.05. 递归乘法(位运算)

    1. 题目 递归乘法. 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘. 可以使用加号.减号.位移,但要吝啬一些. 示例1:输入:A = 1, B = 10输出:10示例2:输入:A = ...

  9. 程序员面试金典 - 面试题 08.11. 硬币(背包DP)

    文章目录 1. 题目 2. 解题 1. 题目 硬币.给定数量不限的硬币,币值为25分.10分.5分和1分,编写代码计算 n 分有几种表示法.(结果可能会很大,你需要将结果模上1000000007) 示 ...

最新文章

  1. 建立实体-关系模型4
  2. SAP RETAIL 为物料组指派Merchandise Hierarchy Level Code
  3. java newline_Java BufferedWriter.newLine()方法示例
  4. Leetcode 77.组合
  5. 是否允许一部分人“先富起来”
  6. plsql(轻量版)_游标的使用1
  7. xxx钻石商城功能开发需求
  8. Java 压缩解压字符串(支持中文)
  9. display none的元素重新展示如何撑开页面_寻根问底之——元素隐藏你知多少?
  10. 【转载】 MySQL之用户资源限制
  11. Python进阶(一)Python中的内置函数、内置方法、私有属性和方法详解
  12. 读书笔记:《金字塔原理》
  13. 新中大计算机知识,新中大软件操作步骤
  14. if 语句错误,提示Conditon is always ‘‘alse‘
  15. TOM邮箱怎么样 TOM邮箱品牌测评分析
  16. 加一(python)
  17. 北京地铁,4号线换乘13号线,用时最短换乘线路
  18. 飞书文档如何添加代码块 ```
  19. 工作11年,35岁,裸辞: 感到前途很迷茫,如何破?
  20. awvs安装及问题解决

热门文章

  1. 综合素质计算机考点,教师资格证小学综合素质考点及考试真题:信息处理能力...
  2. 【机器学习实战之一】:C++实现K-近邻算法KNN
  3. C/C++宏的使用总结
  4. Duplicate interface definition for class
  5. java 日期 年数_java 日期加减天数、月数、年数的计算方式
  6. 学会拒绝别人的6个技巧_多少人败在不懂拒绝上!牢记10个高情商拒绝技巧,人生越来越顺...
  7. 无法解析的外部符号,无法解析的外部命令
  8. 使用复合设计模式扩展持久化的CURD,Select能力
  9. PHP,Mysql-根据一个给定经纬度的点,进行附近地点查询–合理利用算法,效率提高2125倍...
  10. 方向盘开极品飞车9很Hapyy