题解 | #字符串的排列#
字符串的排列
https://www.nowcoder.com/practice/fe6b651b66ae47d7acce78ffdd9a96c7
思路类似称砝码。
首先选择第一个字符,存入集合中,然后依次遍历剩余字符串,把遍历到的字符插入到集合的每一个元素中去,其插入结果组成新的集合
缺点:耗时,勉强合格
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param str string字符串
# @return string字符串一维数组
#
class Solution:
def Permutation(self, str_1):
# write code here
str_set = {str_1[0]}
for i in range(1, len(str_1)):
res_add = []
for res_tp in str_set:
res_add.extend(self.insert(res_tp, str_1[i]))
str_set = set(res_add)
return list(str_set)
def insert(self, str_a, char_b):
list_ist = []
for i in range(len(str_a) + 1):
str_l = str_a[:i]
str_r = str_a[i:]
list_ist.append(str_l + char_b + str_r)
return list_ist