题解 | #字符串的排列#
字符串的排列
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