題目
輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。
思路:元素排列是遞迴問題,在某個位置上選擇哪個元素就對應著該位置上的元素與其他元素相交換(不要忘了與自己交換的情況)。所以按照排列的定義,解題步驟英高是:將當前位置元素與之後的元素相交換,然後在剩餘位置繼續執行交換操作。注意每個位置上一定要交換所有元素,否則只返回的是排列中的一種情況。
class solution
void core(string str, int begin)
//從begin開始,這是沒有交換的情況
for (int i = begin; i < str.length(); i++)
}private:
vectorvec;
};
劍指offer 字串的全排列
題目描述 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入描述 輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。注意有可能重複,因此需要判斷def swap s...
劍指Offer之字串全排列
題目 輸入乙個字串,列印出該字串中字元的所有排列。你可以以任意順序返回這個字串陣列,但裡面不能有重複元素 輸入 s abc 輸出 abc acb bac bca cab cba class solution for int j i j變形二 列印字串的所有子串行 public class demo2...
劍指 字串全排列
輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。輸入乙個字串,長度不超過9 可能有字元重複 字元只包括大小寫字母。思路 遞迴法,問題轉換為先固定第乙個字元,求剩餘字元的排列 求剩餘字...