38 字串的排列

2022-04-29 09:39:10 字數 439 閱讀 8018

題目:輸入乙個字串,列印出該字串中字元的所有排列。

def string_rank(string):

string = list(string)

if len(string)<1:

return ''

if len(string)==1:

return string

string_rank2(string,0)

def string_rank2(arrys,index):

if index==len(arrys)-1:

print(arrys)

i=index

while i注:

使用遞迴來做,遞迴終止的條件:索引值為字串的最後一位。依次將後面字元與當前字元交換後,遞迴後面一位字元,直到最後一位。注意每交換一次字元遞迴一次後,要講字元再交換一次,恢復原位置,防止遺漏。

ATO 38 字串的排列

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。無重複字元 class solution void per...

劍指38 字串的排列

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串 abc,則列印出由字元 a,b,c 所能排列出來的所有字串 abc,acb,bac,bca,cab 和 cba。示例 輸入 abc 輸出 abc acbbac bcacab cba有要求排序,則需要將字串所有字元取出生成等長的char...

面試題38 字串的排列

問題1 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。思路 abcde 第一輪,a與b交換,a與c交換,a與d交換,a與e交換,其中a每次都要回到原來的位置 第二輪,a固定,bcd...