题解 | #字符串的排列#

字符串的排列

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


全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:46
点赞 评论 收藏
分享
完美的潜伏者许愿简历...:隐藏信息被你提取出来了,暗示,这就是暗示
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务