第三十七题 c++的string、char不想折腾了 用python写了。利用递归的算法
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可#
#
# @param str string字符串
# @return string字符串一维数组
#
# c++ 字符串 string char太复杂了 用python写更简单
# 思路:每次提取出一个字符,剩下的字符再扔到函数中去排序,最后所有排序的内容前面添加提取的字符,并判断是否重复
# abcdefg,我先把a拿出来,在将bcdefg传入参数,这样最后返回的是bcdefg所有的结果 再将a加上去就对了
# a处理完后 处理b,将acdefg传入参数继续往下调用就好
class Solution:
def Permutation(self , str: str) -> List[str]:
ans=[]
n=len(str)
if(n<=1):
return str
for i in range(len(str)):
s1=str[i];
for s2 in self.Permutation(str[:i] + str[i+1:]):
insert_ans=s1+s2
# 也可以直接append 最后再利用set 去重
if insert_ans not in ans:
ans.append(insert_ans)
return ans
#