题解 | #字符串的排列#
字符串的排列
http://www.nowcoder.com/practice/fe6b651b66ae47d7acce78ffdd9a96c7
第三十七题 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
#
题解 文章被收录于专栏
一遍做剑指offer 一边保存做题步骤 并附带详细注释哦