设为首页 - 加入收藏
广告 1000x90
您的当前位置:黄大仙www78345 > 交换排列 > 正文

Longice

来源:未知 编辑:admin 时间:2019-07-24

  由于全排列就是从第一个数字起,每个数分别与它后面的数字交换,我们先尝试加个这样的判断如果一个数与后面的数字相同那么这两个数就不交换 了。例如abb,第一个数与后面两个数交换得bab,bba。然后abb中第二个数和第三个数相同,就不用交换了。但是对bab,第二个数和第三个数不 同,则需要交换,得到bba。由于这里的bba和开始第一个数与第三个数交换的结果相同了,因此这个方法不行。

  换种思维,对abb,第一个数a与第二个数b交换得到bab,然后考虑第一个数与第三个数交换,此时由于第三个数等于第二个数,所以第一个数就不再用与第三个数交换了。再考虑bab,它的第二个数与第三个数交换可以解决bba。此时全排列生成完毕!

  去重的全排列就是从第一个数字起,每个数分别与它后面非重复出现的数字交换。

  对初始字符串排序,然后在递归的过程中将全排列的交换两个元素改为两者之间的元素移位。

  (); sort(str.begin(),str.end()); vector

  shift(str, begin, i); Permutation(str1, begin

本文链接:http://apkhealth.com/jiaohuanpailie/483.html

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top