面試題38 字串的排列

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

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

示例:輸入: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用來表...

劍指offer 面試題38 字串的排列

輸入一個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。ps 輸入一個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。其實就是對字串全排列,然後放到 treeset 中。放到tre...

劍指Offer 面試題38 字串的排列

輸入一個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。思路 遞迴思路。迴圈固定第一個位置字母,則後面的排序數等於其餘字元的排序。對其餘字元也一樣進行這樣的操作。最後使用set去重,並排序。...

《劍指offer》面試題38 字串的排列

思路 1.我們求整個字串的排列,可以看成兩步 首先求出所有可能出現在第一個位置的字元,即把第一個字元和後面所有的字元交換。2.第二步固定第一個字元,求後面所有字元的排列。這個時候我們仍把後面的所有字元分成兩部分 後面字元的第一個字元,以及這個字元之後的所有字元。然後把第一個字元逐一和它後面的字元交換...

劍指offer 面試題38 字串的排列

我慣用的dfs模板直接拿來套 class solution int n str.size vector res vector visited n,false string cur sort str.begin str.end dfs res,visited,cur,str return res vo...

劍指offer面試題38 字串的排列

題目描述 輸入一個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。思路 這道題使用的是動態規劃和遞迴的思想。對於輸入的一個字串,可以把它分為兩個部分 首字母和剩下的部分。然後對剩下的部分進行...

劍指offer 面試題38 字串的排列

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

劍指offer 面試題38 字串的排列

面試題38.字串的排列 輸入一個字串,列印出該字串中字元的所有排列。你可以以任意順序返回這個字串陣列,但裡面不能有重複元素。示例 輸入 s abc 輸出 abc acb bac bca cab cba 限制 1 s 的長度 8 class solution def permutation self,...