算法题/用递归实现一个字符串的全排列
来源:互联网 发布:淘宝天下视频营销 编辑:程序博客网 时间:2024/06/05 03:15
python2.7
算法思路:
n个元素的全排列=(n-1个元素的全排列)+(另一个元素作为前缀);
出口:如果只有一个元素的全排列,则说明已经排完,则输出数组;
不断将每个元素放作第一个元素,然后将这个元素作为前缀,并将其余元素继续全排列;
"""f(a,b,c,d,......n) = a+f(b,c,d......n) & b+f(a,c,d......n) & c+f(a,b,d......n)...... n+f(a,b,c,d......n-1)"""
#coding:utf-8def string_to_array(s): if len(s) ==0: return [] else: return arrangement(list(s))def arrangement(array_s): if len(array_s) == 0: return [[]] #如果要排列的列表为空,返回一个空列表 else: result = [] for i in array_s: #获得子集变量,将所有元素赋值给temp temp = array_s[:] temp.remove(i) for j in arrangement(temp): result.append([i]+j) return resultprint(string_to_array('abc'))
阅读全文
0 0
- 算法题/用递归实现一个字符串的全排列
- 字符串的全排列非递归实现算法
- 一个简洁的全排列算法--递归实现
- 字符串-字符串的全排列-递归实现
- 求字符串全排列的递归算法
- 字符串的全排列【递归算法训练】
- 求字符串全排列的递归算法
- 字符串全排列的递归实现
- 递归实现的全排列算法
- 全排列算法的非递归实现
- 全排列递归算法的实现
- 使用递归实现全排列的算法
- 全排列算法的递归实现
- 全排列的递归实现算法
- 实现全排列的递归算法
- 递归实现字符串全排列
- 一个很好的字符串全排列算法
- 递归算法实现全排列
- Linux-基础-环境安装/目录/基本命令/vi/基本服务配置
- 【CodeForces】598A
- python之元组字典及set类型
- (五)linux下c语言实现在线词典
- 常用的正则表达式 数字 邮箱 电话等
- 算法题/用递归实现一个字符串的全排列
- Unity Shader: Shader粒子广告牌
- CodeForces Round 428 div2 839D Winter is here(数学)(详解)
- 十条穷人思维,来看看你占了几条!
- 求多个数的最大公约数方法
- java 比较器 对多个对象进行排序操作
- 堆排序-------------->_<
- hdu-4725 The Shortest Path in Nya Graph (spfa + 建图)
- pytyon关键字参数