Python中字符串的全排列(实现方式:递归和非递归)
发布时间
阅读量:
阅读量
字符串全排列生成方法
针对给定的字符串S[0…N-1],需要构思一种算法方案,用以生成该字符串的所有可能排列形式。
一、递归方式
分析思路:
将s[0]置于位置0,对[1,n-1]范围内的元素进行全排列(递归处理)
将s[1]置于位置0(即与s[0]交换位置),对[1,n-1]范围内的元素进行全排列(递归处理)
……
若第i个元素在先前步骤中已被使用,则予以跳过
……
将s[n-1]置于位置0(即与s[0]交换位置),对[1,n-1]范围内的元素进行全排列(递归处理)
Python代码如下:
from copy import deepcopy
def isduplicate(li, n, t):
"""
从li的位置n到位置t-1,有没有和li[t]相等的数字
"""
while n < t:
if li[n] == li[t]:
return True
n += 1
return False
def swap(li, i, j):
if i == j:
return
temp = l
全部评论 (0)
还没有任何评论哟~
