題目描述:輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串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...