class Solution {public:vector<string> permutation(string s) {dfs(s, 0);return res;}
private:vector<string> res;void dfs(string s, int x) {if(x == s.size() - 1) {res.push_back(s);                       // 添加排列方案return;}set<int> st;for(int i = x; i < s.size(); i++) {if(st.find(s[i]) != st.end()) continue; // 重复,因此剪枝st.insert(s[i]);swap(s[i], s[x]);                       // 交换,将 s[i] 固定在第 x 位dfs(s, x + 1);                          // 开启固定第 x + 1 位字符swap(s[i], s[x]);                       // 恢复交换}}
};作者:jyd
链接:https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcof/solution/mian-shi-ti-38-zi-fu-chuan-de-pai-lie-hui-su-fa-by/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

//问题:不明白为什么可以排除重复的字符?
在更换固定的字符之前进行检查,看该字符是否被固定过,如果被固定过,则说明更换字符后的排序会有重复

dfs使用循环进行分支

2021-09-01剑指 Offer 38. 字符串的排列相关推荐

  1. 【LeetCode】剑指 Offer 38. 字符串的排列

    [LeetCode]剑指 Offer 38. 字符串的排列 文章目录 [LeetCode]剑指 Offer 38. 字符串的排列 package offer;import java.util.Hash ...

  2. ++递归 字符串全排列_剑指 Offer 38. 字符串的排列

    剑指 Offer 38. 字符串的排列 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. 示例: 输入:s = "abc" ...

  3. LeetCode——剑指 Offer 38. 字符串的排列

    剑指 Offer 38. 字符串的排列 题目 输入一个字符串,打印出该字符串中字符的所有排列.你可以以任意顺序返回这个字符串数组,但里面不能有重复元素.示例:输入:s = "abc" ...

  4. 剑指 Offer 38. 字符串的排列

    import java.util.ArrayList; import java.util.HashSet; import java.util.List;/*** 剑指 Offer 38. 字符串的排列 ...

  5. 【击败时间100%】剑指 Offer 38. 字符串的排列

    立志用最少的代码做最高效的表达 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. 示例: 输入:s = "abc" 输出 ...

  6. list转字符串_剑指offer 38——字符串的排列

    本题主要在于对回溯的理解,优化时可以结合 java 特性,以及排列的一些知识. 原题 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. 示例 ...

  7. 【算法】剑指 Offer 38. 字符串的排列 【重刷】

    1.概述 输入一个字符串,打印出该字符串中字符的所有排列. 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. 示例: 输入:s = "abc" 输出:["abc ...

  8. 剑指 Offer 38. 字符串的排列(有重复元素的排列)

    思路:dfs 暴搜 class Solution { public:vector<string> permutation(string s) {vector<string> a ...

  9. 【LeetCode笔记】剑指 Offer 38. 字符串的排列(Java、字符串、DFS)

    文章目录 题目描述 思路 && 代码 二刷 打卡第五天- 题目描述 和这道题很相似,只是数据结构不同 思路 && 代码 DFS + 辅助访问数组 + Set 减枝 通过 ...

最新文章

  1. 相机自动对焦AF原理
  2. RESTful_基础知识
  3. 自学python需要买书吗-Python入门到精通学习书籍推荐!
  4. 【五校联考6day2】er
  5. Python oct 函数 - Python零基础入门教程
  6. CSS3中display属性的Flex布局
  7. oracle中decode的用法(例子)
  8. 跟小丸子学基础口语16-20
  9. Java中StringBuffer类的常用方法
  10. JavaScript快速基础入门
  11. 【Windows】键盘禁用(屏蔽)Win快捷键
  12. 新浪微博生成超短链接
  13. 我对顶级域名、一级域名和二级域名的认识
  14. 计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上
  15. FileZilla文件传输失败问题
  16. 二十四节气-谷雨文案、海报分享,谷雨润万物,不觉夏已至。
  17. Linux目录结构与Windows对比
  18. 卷积层运算详解与im2col实现
  19. 不联网的计算机需要杀毒吗,杀毒软件不联网可以杀毒吗?
  20. 采用开源程序pyAero批量生成高质量的多块翼型网格

热门文章

  1. Sona - NBUT 1457 莫队算法
  2. Actel FPGA上电即行之优势
  3. 一文详解 Nacos 高可用特性
  4. 电商如何运营好一个微社区?看MG小象、森马,如何打造买家社区
  5. lua-luaStudio安装
  6. jlink v9开启VCOM(虚拟串口)功能
  7. [书]x86汇编语言:从实模式到保护模式 -- 第11章 进入保护模式,初识全局描述符表GDT; 第12章 别名,冒泡排序
  8. 马来西亚外劳市场现状
  9. 计算机科学期刊模板,《计算机科学与探索》(期刊的论文模板)
  10. QML QZXing 二维码扫描