首页 > 其他 > 详细

剑指offer 面试38题

时间:2018-06-24 19:57:54      阅读:176      评论:0      收藏:0      [点我收藏+]

面试38题:

题:字符串的排列

题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

解题思路:把字符串看成两部分:第一部分是它的第一个字符;第二部分是后面的所有字符。 递归

解题代码:

# -*- coding:utf-8 -*-
class Solution:
    def Permutation(self, ss):
        # write code here
        if not ss:
            return []
        if len(ss)==1:
            return list(ss)
        pStr=[]
        charlist=list(ss)
        charlist.sort()
        
        for i in range(len(charlist)):
            if i>0 and charlist[i]==charlist[i-1]:
                continue
            temp=self.Permutation(‘‘.join(charlist[:i])+‘‘.join(charlist[i+1:]))
            for j in temp:
                pStr.append(charlist[i]+j)
        return pStr

 

剑指offer 面试38题

原文:https://www.cnblogs.com/yanmk/p/9221496.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!