字符串_字符串的排列(有点难)

参考:
https://blog.csdn.net/qq_20141867/article/details/80933497
https://blog.csdn.net/qq_31715255/article/details/99413860
法1:
# -*- coding:utf-8 -*-
class Solution:
def Permutation(self, ss):
if len(ss) <=0:
return []
res = list()
self.perm(ss,res,'')
uniq = list(set(res))
return sorted(uniq)
def perm(self,ss,res,path):
if ss=='':
res.append(path)
else:
for i in range(len(ss)):
self.perm(ss[:i]+ss[i+1:],res,path+ss[i])
法2
# -*- coding:utf-8 -*-
class Solution:
def Permutation(self, ss):
# write code here
out = []
if len(ss) == 0:
return out
charlist = list(ss)
self.permutation(charlist, 0, out)
res = ["".join(out[i]) for i in range(len(out))]
res.sort()
return res
def permutation(self, ss, begin, out):
if begin == len(ss)-1:
out.append(ss[:])
else:
for i in range(begin,len(ss)):
if ss[begin]==ss[i] and begin!=i:
continue
else:
ss[begin], ss[i] = ss[i], ss[begin]
self.permutation(ss, begin+1, out)
ss[begin], ss[i] = ss[i], ss[begin]
本文深入探讨了字符串排列的两种高效算法实现,通过递归和回溯的方法,详细解析了如何生成一个字符串的所有可能排列组合。文章提供了清晰的代码示例,并对比了不同方法的优缺点,适合对算法设计和字符串操作感兴趣的学习者。
&spm=1001.2101.3001.5002&articleId=104882303&d=1&t=3&u=3a33d4f0e9124f40bd5f896fedf5aeff)
1733

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



