面試題38 字串的排列

2021-10-11 07:24:15 字數 791 閱讀 6490

題目:輸入乙個字串,列印出該字串中字元的所有排列。 你可以以任意順序返回這個字串陣列,但裡面不能有重複元素。

示例:輸入:s = 「abc」

輸出:[「abc」,「acb」,「bac」,「bca」,「cab」,「cba」]

參考思路

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-mbntu64f-1607042717529)(en-resource://database/607:1)]

class

solution

public

void

bfs(

int x)

hashset

set =

newhashset

<

>()

;for

(int i = x; i < c.length; i++

) set.

add(c[i]);

swap

(x, i)

;// 交換,將 c[i] 換到 x 位置中來

bfs(x +1)

;// 固定第 x + 1 位字元

swap

(i, x)

;// 交換回來

}return;}

public

void

swap

(int i,

int j)

}

面試題38 字串的排列

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

面試題38 字串的排列

1 題目描述 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則按字典序列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。2 輸入 str3 輸出 str的全排列 可能有字元重複 字元只包括大小寫字母。4 樣例輸入 abc 5 樣例輸...

回溯 面試題38 字串的排列(medium)

題目 題解 如下 class solution set res visit.resize s.size false string str backtrack s,res,str,0,int s.size return vector res.begin res.end 回溯法基本框架 index用來表...