python 有重複字串的排列組合

2021-10-24 12:04:20 字數 755 閱讀 5488

有重複字串的排列組合。編寫一種方法,計算某字串的所有排列組合。

示例1:

輸入:s =

"qqe"

輸出:[

"eqq"

,"qeq"

,"qqe"

]示例2

: 輸入:s =

"ab"

輸出:[

"ab"

,"ba"

]

遞迴:

從字串中挑出乙個字元,再加入到其他字元的全排列中;

去掉重複只需要判斷當前字元是否在之前出現過即可。

class

solution

:def

permutation

(self, s:

str)

-> list[

str]

: n=

len(s)

if n==0:

return[""

] res=

for i in

range

(n):

if s[i]

in s[

:i]:

#只需判斷s[i]是否在s[:i]**現過即可

continue

for s1 in self.permutation(s[

:i]+s[i+1:

]):+s1)

return res

字串的排列(有字元重複)

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。全排列就是從第乙個數字起,每個數分別與它後面的數字交換,從字串最後逐...

非重複字串的全排列 python實現

比如 s abc 那字串 s 的全排列結果為 abc abc bac bca cba cab 1 def string permutation s 迭代終止條件 if len s 1 return s else temp list for i in range len s 遍歷字串 s 中的每個字元...

python 字串的排列

給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。換句話說,第乙個字串的排列之一是第二個字串的子串。輸入 s1 ab s2 eidbaooo 輸出 true 解釋 s2 包含 s1 的排列之一 ba 輸入 s1 ab s2 eidboaoo 輸出 false 注意 輸入的...