抛出问题
求任意一个字符串的全排列组合,例如a=‘123’,输出 123,132,213,231,312,321。(暂时假定字符串没有重复)
解决方案
目前有两种解决的方法
方法一:
def str_sort(s=''):
if len(s) <= 1:
return [s]
str_list = []
for i in range(len(s)):
for j in str_sort(s[0:i] + s[i + 1:]):
str_list.append(s[i] + j)
return str_list
str_list = str_sort('abc')
print(len(str_list), str_list)
这种理解起来非常好理解,就是循环遍历每个字符,让每个字符打头,然后继续递归遍历后边的字符
方法二:
#字符串任意

本文介绍了如何在Python3中实现无重复字符的字符串全排列。提供了两种方法:一种是直观的递归遍历,另一种是利用递归思想优化的解决方案,虽然第二种方法在时间效率上可能较低。
最低0.47元/天 解锁文章
348

被折叠的 条评论
为什么被折叠?



