有重複字串的排列組合。編寫一種方法,計算某字串的所有排列組合。
示例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 注意 輸入的...