首页 > 其他 > 详细

全排列问题

时间:2018-07-14 17:33:43      阅读:201      评论:0      收藏:0      [点我收藏+]

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

  方法一:

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

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

技术分享图片

 

  方法2:

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

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

 技术分享图片

  方法三:

  引入itertools库

技术分享图片

 

 

  

全排列问题

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!