面試題 08 07 無重複字串的排列組合

2022-01-19 22:30:49 字數 539 閱讀 8448

題幹

無重複字串的排列組合。編寫一種方法,計算某字串的所有排列組合,字串每個字元均不相同。

示例1:

輸入:s = "qwe"

輸出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]

示例2:

輸入:s = "ab"

輸出:["ab", "ba"]

字元都是英文本母。

字串長度在[1, 9]之間。

思路1.結束條件

當所有字元都被選取後,即記錄該字元結果

2.選取條件

遍歷,當這個字元沒有被選取,則選取,並mark這個字元,進行下一輪回溯法

**

class

solution

private listdfs(char s, boolean mark, string tmp, listres)

//遍歷字元陣列找有沒有沒被選中的

for (int i=0;i)

}return

res;}}

結果

面試題 08 07 無重複字串的排列組合

套dfs回溯模板,模板參考 class solution object def init self res作為返回值,設為全域性變數 self.res def permutation self,s type s str rtype list str 獲取原串的長度 n len s 暫存此趟迴圈的組合...

面試題 最長不含重複字元的子字串

請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。假設字串中只包含 a z 的字元。例如,在字串 arabcacfr 中,最長的不含重複字元的子字串是 acfr 長度為4。思路 常規套路的話,先求有多少個子字串,再看看是否有重複字元,那麼一套下來就要o n 3 有點多,那麼就用...

字串高頻面試題。

一 題目 把乙個01 只包含0和1的串 串進行排序。可以交換任意兩個位置,求最少交換的次數。方法 仿造快速排序裡面的partition的過程。最左邊的0和1是沒有意義的,從左到右掃到第乙個1,從右到左掃到第乙個0,然後交換,然後繼續掃下去,就ok啦。include include define ma...