题解 | #字符串的排列#

字符串的排列

http://www.nowcoder.com/practice/fe6b651b66ae47d7acce78ffdd9a96c7

思路:

遍历当前字符,再遍历除当前字符其他字符的全排列,相加为结果

1、注意重复去除

2、除以递归出口为字符长度为1时,直接返回该字符

class Solution:
    def Permutation(self , str: str) -> List[str]:
        # write code here
        
        if len(str) == 0:
            return []

        return self.helper(str)
    
    def helper(self, ss):
        if len(ss) <= 1: # 重点是递归出口
            return ss
        
        result = []
        for i in range(len(ss)):
            s1 = ss[i]
            for s2 in self.helper(ss[:i]+ss[i+1:]):
                s = s1 + s2
                if s not in result:
                    result.append(s)
        return result
全部评论

相关推荐

11-26 22:34
已编辑
重庆邮电大学 Java
快手 客户端开发 (n+5)k*16 公积金12
牛客895077908号:佬 什么双非硕啊
点赞 评论 收藏
分享
有趣的牛油果开挂了:最近这个阶段收到些杂七杂八的短信是真的烦
点赞 评论 收藏
分享
offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务