剑指 Offer 38. 字符串的排列

题目

输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"
输出:["abc","acb","bac","bca","cab","cba"]来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解思路

1>源代码

class Solution:def permutation(self, s: str) -> List[str]:s_list = list(s)ans = []def helper(s_list, start):if start==len(s_list):ans.append(''.join(s_list))returnfor i in range(start, len(s_list)):s_list[i], s_list[start] = s_list[start], s_list[i]helper(s_list, start+1)s_list[i], s_list[start] = s_list[start], s_list[i]helper(s_list, 0)return list(set(ans))

2>算法介绍

​上一次碰到这道题的时候完全没有思路,当时对回溯算法的代码结构还不熟练,这次再遇,我以很快的速度就完成了这题。

附上我写的LeetCode主站——全排列解析

LeetCode——0046.全排列

LeetCode——剑指 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. 剑指 Offer 38. 字符串的排列

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

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

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

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

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

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

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

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

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

  8. 2021-09-01剑指 Offer 38. 字符串的排列

    class Solution {public:vector<string> permutation(string s) {dfs(s, 0);return res;} private:ve ...

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

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

最新文章

  1. es6数组去重_JavaScript数组去重
  2. 15分钟实现AI端计算模型训练、加速与部署 | 百度EasyDL公开课
  3. uefi装完系统后无法引导_系统安装完后再设置uefi启动 - 卡饭网
  4. SQL Server数据归档的解决方案
  5. 中如何调取api_API(接口)是什么
  6. php订单日期分类,PHP订单即将到来的日期
  7. 2021-06-25绝对定位的理解
  8. python3 scrapy中文文档_Python学习-scrapy3
  9. Reactjs项目构建
  10. 【机器学习基础】EM算法
  11. 手把手教你如何玩转EasyExcel的导入和导出
  12. 浅谈ipad阅读类应用设计
  13. CUDA:两种自适应图像去噪技术KNN和NLM的实例
  14. 怎么批量查询快递物流信息
  15. 伊登软件BPM/EIP解决方案
  16. ART与SART代数重建算法
  17. 使用dd整盘克隆jetson nano tf卡
  18. 线性代数基础----矩阵
  19. 实现企业数字化转型,你只差一味药引子
  20. 与2017年度两位图灵奖得主的虚拟对话

热门文章

  1. Comet OJ - 2019国庆欢乐赛 D1 入学考试 (简单版)
  2. android 高德地图动画,Android 高德地图上自定义动画
  3. 【Linux入门】— 腾讯云服务器的搭建
  4. 网络退化、过拟合、梯度消散/爆炸
  5. 基于Arduino IDE开发的LD3320语音识别模块
  6. 微信小程序---密码输入
  7. vnc远程无法关闭窗口_VNC远程显示3D界面
  8. Jsoup和JsoupXpath详解
  9. 【校招Verilog快速入门】基础语法篇:VL1、四选一多路器
  10. 农村商业银行与中国农业银行的区别