zoukankan      html  css  js  c++  java
  • 字符串的全排列-终于弄明白了

    题目:

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

    思路:

    1.将字符串里的每个字符都充当一次第一个字符

    2.固定第一个字符,剩余的字符串里每个字符都充当一次第二个字符

    3.固定第二个字符,在剩余字符串中每个字符都充当一次第三个字符

    依次递归......

    代码实现

     1 class Solution:
     2     def Permutation(self, ss):
     3         if not ss:
     4             return []
     5         res = []
     6         self.perCore(ss, res, '')
     7         return sorted(set(res)) # 使用set去重,使用sorted按照字典序排序
     8 
     9     def perCore(self, ss, res, path):
    10         if not ss:
    11             res.append(path)
    12         else:
    13              for i in range(len(ss)):
    14                 self.perCore(ss[:i] + ss[i+1:], res, path + ss[i])
    15 if __name__ == '__main__':
    16     str='123'
    17     s= Solution()
    18     print(s.Permutation(str))

    递归过程详解

     参考了别人的代码:

    https://blog.csdn.net/fuxuemingzhu/article/details/79513101

  • 相关阅读:
    59
    58
    57
    56
    55
    54
    53
    转 Using $.ajaxPrefilter() To Configure AJAX Requests In jQuery 1.5
    jquery用正则表达式验证密码强度
    什么是高内聚、低耦合?(转载)
  • 原文地址:https://www.cnblogs.com/shuangcao/p/12745717.html
Copyright © 2011-2022 走看看