1. 程式人生 > >劍指offer 面試38題

劍指offer 面試38題

PE cab 字符串 range spa nbsp 所有 lis style

面試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題