字串的排列 劍指offer python版

2021-10-18 23:27:33 字數 912 閱讀 2837

題目描述

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

示例1輸入

「abc」

返回值

[『abc』, 『acb』, 『bac』, 『bca』, 『cab』, 『cba』]

【思路】

把字串分為兩部分:一部分是字串的第乙個字元,另一部分是第乙個字元以後的所有字元。

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

class

solution

:def

permutation

(self, ss)

:# write code here

str_list=

[x for x in ss]

ret=

self.construct(str_list,

'',ret)

uniq=

list

(set

(ret)

) uniq.sort(

)return uniq

defconstruct

(self,str_list,buf,ret):if

not str_list and buf:

return

for i in

range

(len

(str_list)):

self.construct(str_list[

:i]+str_list[i+1:

],buf+str_list[i]

,ret)

劍指 字串全排列

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。思路 遞迴法,問題轉換為先固定第乙個字元,求剩餘字元的排列 求剩餘字...

劍指Offer 字串排列

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

劍指offer 字串的排列

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