劍指offer 字串的排列 Python

2021-10-01 12:28:53 字數 1306 閱讀 4965

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。

輸入乙個字串,長度不超過9(可能有字元重複),字元只包括大小寫字母。

class

solution

:def

__init__

(self)

: self.array =

defpermutation

(self, ss)

:# write code here

iflen

(ss)

<=0:

return

self.dg(

list

(ss),0

)return

sorted

(list

(set

(self.array)))

defdg

(self,ss,index)

:if index >=

len(ss)

''.join(ss)

)for i in

range

(index,

len(ss)):

ss[i]

,ss[index]

= ss[index]

,ss[i]

self.dg(ss,index+1)

ss[i]

,ss[index]

= ss[index]

,ss[i]

# -*- coding:utf-8 -*-

class

solution

:def

permutation

(self, ss)

:# write code here

iflen

(ss)

<=0:

return

return

sorted

(list

(set

(self.dg(ss)))

)def

dg(self,ss):if

len(ss)==1

:return ss

res =

for index in

range

(len

(ss)):

strss = self.dg(ss[

:index]

+ss[index+1:

])+i)return res

劍指Offer 字串排列

題目描述 輸入乙個字串,列印出該字串中字元的所有排列。解析 step 1 求所有可能出現第乙個位置的字元。把第乙個字元與後面的每個字元交換。step 2 固定第乙個字元,將後面的字元利用遞迴進行全排列。include include using namespace std void stringpe...

劍指offer 字串的排列

題目描述 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c 所能排列出來的所有字串abc,acb,bac,bca,cab和cba。結果請按字母順序輸出。解題思路 深度搜尋,在每層搜尋裡設定乙個a陣列對映所有字元,每個字元在這層迴圈中只能使用一次,避免重...

劍指offer 字串的排列

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。結果請按字母順序輸出。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。分析 經典問題。記住吧。class ...