字串的全排列與組合

2021-06-26 15:14:15 字數 1006 閱讀 1099

一、字串的排列

問題描述:給出乙個字串,請設計乙個函式輸出所有可能的排列,如abc,可能的排列順序有abc、acb、bac、bca、cba、cab

問題分析:要對長度為n的序列進行排序,可以轉化為固定第乙個的值,再對剩餘的n-1個進行排序的問題,可以用遞迴實現。由於第乙個的值可以是任何乙個,可用第乙個值與其他值依次交換實現。如序列abc可以轉化為如下三種情況:

(1)第乙個固定為a,對bc進行排序

(2)第乙個固定為b,對ac進行排序

(3)第乙個固定為c,對ab進行排序

二、字串的組合

問題描述:給出乙個字串,請輸出所以可能的組合,如abc的組合有a、b、c、ab、bc、ac、abc

問題分析:假設長度n-1的字串的組合已經知道,那麼長度n的字串的組合有如下情況:

(1)、保持原有組合集不變

(2)、原有組合集中每個組合後面新增第n個字元,並新增該組合

(3)、新增乙個由第n個字元組成的組合

額。。。語文水平實在是不咋的,下面舉個例子來說明下,如ab原有組合是a、b、ab,那麼abc的組合有如下情況

(1)原有不變:a、b、ab

(2)每個組合新增第n個字元,在這裡都新增了c:ac、bc、abc

(3)第n個字元組成的集合:c

所以最終abc的組合有(1)(2)(3)三種情況加起來:

字串的全排列與組合

題目描述 輸入乙個字串,列印出該字串中字元的所有排列。基本思路 從字串中選出乙個字元作為排列的第乙個字元,然後對剩餘的字元進行全排列,如此遞迴,從而得到所有字元的全排列。以對字元 abc 進行全排列為例,可以按下述步驟執行 將a固定在第一位,求後面bc的排列 將b固定在第一位,求後面ac的排列 將c...

字串的全排列與組合

一 字串的排列 問題描寫敘述 給出乙個字串。請設計乙個函式輸出全部可能的排列。如abc,可能的排列順序有abc acb bac bca cba cab 問題分析 要對長度為n的序列進行排序,能夠轉化為固定第乙個的值,再對剩餘的n 1個進行排序的問題。能夠用遞迴實現。因為第乙個的值能夠是不論什麼乙個。...

字串排列與組合

一 字串的排列 給定乙個字串,如何求出字串的所有排列。解題思路 字串的排列可以拆分成,第乙個字元和後面的字元進行組合而成,只需要變換第乙個字元,然後遞迴求後面的字元的排列即可,等到後面的字元為空的時候就得到一種字元的排列,下面是 實現 str 要排列的字串 pbegin 待排列的字串的起始位置,遞迴...