美文网首页剑指offer
面试题38. 字符串的排列

面试题38. 字符串的排列

作者: 人一己千 | 来源:发表于2020-03-20 01:33 被阅读0次

题目

输入一个字符串,打印出该字符串中字符的所有排列。

你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。

示例:

输入:s = "abc"
输出:["abc","acb","bac","bca","cab","cba"]

限制:

1 <= s 的长度 <= 8

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

解法

s本身比较小,而且本身就是个排列问题。
上递归。
需要注意的是,不能有重复元素,所以放到set再转list。

class Solution:
    def permutation(self, s: str) -> List[str]:
        result = []
        
        def f(word,s):
            if s == '' : result.append(word)
            for i,c in enumerate(s):
                f(word+c, s[:i]+s[i+1:])
        
        f('',s)
        return list(set(result))

相关文章

  • Day3 字符串排列⭐+重建二叉树⭐+顺时针打印矩阵

    剑指 Offer 38. 字符串的排列(中等)[https://leetcode-cn.com/problems/...

  • 字符串全排列

    剑指 Offer 38. 字符串的排列[https://leetcode-cn.com/problems/zi-f...

  • 面试题38. 字符串的排列

    题目 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。...

  • 《剑指Offer》-38.字符串的排列

    题干 输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由a、b、c所能排列出来的所有...

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

    输入一个字符串(可能包含重复字符),打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不...

  • 面试题28:字符串的排列

    题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的...

  • 面试题38: 字符串的排列

    题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排...

  • 面试题38:字符串的排列

    题目:输入一个字符串,打印出该字符串中字符的所有排列。思路:使用递归来做,解决方案:···public class...

  • 迭代算法

    问题 输入一个字符串,给出该字符串所有的排列 问题分析 非常标准的排列问题,不考虑字符串重复的前提下共有n!种排列...

  • IOS 算法(中级篇) ----- 无重复字符串的排列组合

    今天看一道面试题, 很有趣题目: 求无重复字符串的排列组合。(字符都是英文字母且长度在[1, 9]之间) 例:给...

网友评论

    本文标题:面试题38. 字符串的排列

    本文链接:https://www.haomeiwen.com/subject/aykkyhtx.html