码迷,mamicode.com
首页 > 其他好文 > 详细

全排列问题

时间:2018-07-14 17:41:22      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:位置   返回   技术分享   png   不可变   height   引入   数字   字符串的排列   

  给定一个无重复数字的序列,返回这些数所能排列出的所有序列。

  方法一:

  首先求出所有可能出现在第一个位置的字符,即把第一个字符和后面所有字符进行交换(自己本身进行交换也是其中一种);

  然后把后面的字符继续分成两部分,将第一个字符与后面字符进行交换(包括字符本身),终止条件是:字符长度为1,无法进行交换。

技术分享图片

 

  方法2:

  采用一个一个向中间集添加元素的方法,递归终止条件是传入的待递归的列表长度为1。

  此种方法的优点是无需交换,因此此种方法稍加改变就可以用于字符串的排列问题,因为在python中字符串属于不可变类型,如果字符按序输入的话,最终输出的排列也是按照字典序输出的。

 技术分享图片

  方法三:

  引入itertools库

技术分享图片

 

 

  

全排列问题

标签:位置   返回   技术分享   png   不可变   height   引入   数字   字符串的排列   

原文地址:https://www.cnblogs.com/zs-learn/p/9310257.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!