27 字串的排列

2021-09-27 18:42:07 字數 626 閱讀 1432

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

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

總結:

把字串分為兩部分:

(1)第乙個字元為一部分,後面的所有字元為另一部分,將第乙個字元與後面字元逐個交換;

(2)第乙個字元不動,把後面字元再做(1)的運算,分別遞迴求解;

class solution 

/*定義遞迴函式,傳入四個值:result引用、字串、起始位置、串長度*/

void permutation(vector&result,string str,int index,int len)

if(index==len)//遍歷完最後乙個字元時相等

result.push_back(str);//最後把排序好的str放入vector,以便返回

}/*盡量不呼叫現成函式,自己寫一遍swap*/

void swap(char&a,char&b)

};

27 字串的排列

題目 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。思路 全排列,採用遞迴。1 首先,我們固定第乙個字元a,求後面兩個字元bc的排列 2 當兩個字元bc排列求好之後,我們把第乙個字...

27 字串的排列

輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。回溯法 也就是利用樹去嘗試不同的可能性,不斷地去字串陣列裡...

JZ27 字串的排列

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