28 字串的排列

2021-07-28 20:12:27 字數 836 閱讀 7621

題目:

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

解題思路:遞迴呼叫;遞迴演算法的四個特性:1.必須可以達到終止條件,否則會陷入死迴圈;2、子問題在規模上比原問題小;3、子問題可以通過再次遞迴呼叫;4、子問題的解可以組成整個問題的解

兩步走:第一步,求所有可能出現在第乙個位置的字元,即把第乙個字元和後面的字元交換

第二步,固定第乙個字元,求後面所有字元的排列,這時候如需要把後面的字串分成兩部分,後面字串的第乙個字元,以及這個字元之後的所有字元,然後回到第一步.......

面試題28 字串排列

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

面試題28 字串的排列

1.輸入乙個字串,列印出該字串中字元的所有排列,例如輸入字串abc,則列印出字元a,b,c的所有可能排列,abc,acb,bac,bca,cab,cba.分析 我們可以講字串看成兩部分組成,第一部分為第乙個字元,第二部分是後面所有的字元。首先求所有可能出現在第一位置的字元,即把第乙個字元和後面所有的...

面試題28 字串的排列

題目 輸入乙個字串,列印出該字串中字元的所有排列。例如輸入字串abc,則列印出字元a b c所能排列出來的所有字串abc acb bac bca cab cba。這是乙個典型的遞迴問題,考慮如何將複雜問題分解成簡單問題,最後通過遞迴解決。我們肯定有這樣的經驗,自己在寫abc的全排列的時候,肯定會想首...