38字符串的排列

作者: gantrol | 来源:发表于2019-01-21 19:05 被阅读0次

输入一个字符串,按字典的顺序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。

参考https://leetcode.com/articles/permutations/

def Permutation(string):
    """
    @title: 输入一个字符串,按字典的顺序打印出该字符串中字符的所有排列。
    @param: List[string], 大小写英文,长度不超过9,可能有重复。
    @return: List[List[string]], 打印各种排列
    """
    if not string: return None
    string_list = [a for a in string]
    def backtrack(first=0):
        if first == n:
            result.append(string_list[:])
        else:
            for i in range(first, n):
                string_list[first], string_list[i] = string_list[i], string_list[first]
                backtrack(first + 1)
                string_list[first], string_list[i] = string_list[i], string_list[first]
    n = len(string_list)
    result = []
    backtrack()
    return result

if __name__ == "__main__":
    # functional tests
    assert Permutation('abs') == [['a', 'b', 's'], ['a', 's', 'b'], ['b', 'a', 's'], ['b', 's', 'a'], ['s', 'b', 'a'], ['s', 'a', 'b']]
    assert Permutation('Ks') == [['K', 's'], ['s', 'K']]
    # Robust tests
    assert Permutation('') is None

相关文章

  • 38:字符串的排列

    题目38:字符串的排列 输入一个字符串,打印出该字符串中字符的所有排列。 举例说明 例如输入字符串abc。则打印出...

  • 2022-02-15 1380. 矩阵中的幸运数

    送分题 java版本: 剑指offer 38:字符串的排列类似于全排列+支持相同字符Go版本:

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

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

  • 字符串全排列

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

  • 38-字符串的排列-排列组合

    排列 输入一个字符串,打印出该字符串中字符的所有排列。 排列算法基于交换,将当前项与后面的每一项都进行一次交换,就...

  • 38字符串的排列

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

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

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

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

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

  • 迭代算法

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

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

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

网友评论

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

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