劍指offer刷題 字串的排列

2021-10-07 11:10:21 字數 415 閱讀 4840

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

可以將字串看成兩部分,第乙個字元看成第一部分,後面的字元看成第二部分。並且依次將第二部分的第乙個字元和第一部分交換。同時對第二部分遞迴的進行操作即可。

由於題目並沒有說明字元都是不重複的,因此在得到結果之後要進行去重,才能夠進行返回。詳見**。

class solution 

result.clear();

for(auto e:s)

return result;

}void recursion(vector&result,string& str,int index)

}};

劍指offer第28題 字串的排列

輸入 abc 輸出 abc acb bac bca cab cba 思路 字串由兩部分組成,第乙個字元和後面的部分 1。先求所有可能出現在第乙個位置的字元,2。固定第乙個字元,求後面字元的排列,遞迴 public class permutation permutationstring ch,0 pr...

劍指Offer 字串排列

題目描述 輸入乙個字串,列印出該字串中字元的所有排列。解析 step 1 求所有可能出現第乙個位置的字元。把第乙個字元與後面的每個字元交換。step 2 固定第乙個字元,將後面的字元利用遞迴進行全排列。include include using namespace std void stringpe...

劍指offer 字串的排列

題目描述 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c 所能排列出來的所有字串abc,acb,bac,bca,cab和cba。結果請按字母順序輸出。解題思路 深度搜尋,在每層搜尋裡設定乙個a陣列對映所有字元,每個字元在這層迴圈中只能使用一次,避免重...