全排列
# -*- coding:utf-8 -*-
class
solution
:def
permutation
(self, ss)
:# write code here
iflen
(ss)
<=1:
return ss
res =
# res = set()
# 遍歷字串,固定第乙個元素,第乙個元素可以取a,b,c...,然後遞迴求解
for i in
range
(len
(ss)):
# 依次固定了元素,其他的全排列(遞迴求解)
for j in self.permutation(ss[
:i]+ss[i+1:
]):# 集合新增元素的方法add(),集合新增去重(若存在重複字元,排列後會存在相同,如baa,baa)
+j)# sorted()能對可迭代物件進行排序,結果返回乙個新的list
# set是為了去重
return
sorted
(set
(res)
)
劍指offer 27 字串的排列
輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。時間限制 1秒 空間限制 32768k 熱度指數 2992...
《劍指Offer》27 字串的排列
題目 27.字串的排列 知識點 字串 回溯演算法 題目描述 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。解題思路 主要是使用回溯演算法的思想,通過遞迴從後向前將字串分為固定部分和...
劍指offer(27)字串的排列
輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。這題還算可以,關於全排列,有兩種解法,第一種就是遞迴全排列...