牛客題霸 研發 NC121 字串的排列

2021-10-25 15:51:18 字數 1079 閱讀 1859

----------------------------------------------本題鏈結----------------------------------------------

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則按字典序列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。

輸入乙個字串,長度不超過9(可能有字元重複),字元只包括大小寫字母。

輸入

"ab"

返回值["ab","ba"]

全排列問題

採用回溯演算法,解決乙個回溯問題,實際上就是乙個決策樹的遍歷過程

回溯演算法3個要點:

路徑:也就是已經做出的選擇。

選擇列表:也就是你當前可以做的選擇。

結束條件:也就是到達決策樹底層,無法再做選擇的條件。

推薦大佬總結的回溯演算法問題:labuladong的演算法小抄

回溯演算法框架如下:

private list<

> res;

private

void

backtrack

(選擇列表,路徑)

for(選擇 : 選擇列表)

}

public

class

solution

private

void

backtrack

(char

ch,

int pos)

setset =

newhashset

<

>()

;for

(int i = pos; i < ch.length; i++)}

private

void

swap

(char

ch,

int i,

int j)

}

牛客題霸 研發 NC127 最長公共子串

本題鏈結 給定兩個字串str1和str2,輸出兩個字串的最長公共子串,如果最長公共子串為空,輸出 1。輸入 1ab2345cd 12345ef 返回值 2345 動態規劃問題 假設兩個字串長度為n m,具體分析其問題 最優子結構 如果知道 n 1 m 1 長度字串的最長公共子串s,則 n m 長度字...

牛客(27)字串的排列

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

牛客題霸 旋轉字串 C 題解 答案

牛客題霸 旋轉字串 c 題解 答案 字串旋 給定兩字串a和b,如果能將a從中間某個位置分割為左右兩部分字串 都不為空串 並將左邊的字串移動到右邊字串後面組成新的字串可以變為字串b時返回true。例如 如果a youzan b zanyou a按 you zan 切割換位後得到 zanyou 和b相同...