字符串的全排列和組合算法

1. 排列

鏈接
注意字符重復與非重復兩種情況的區(qū)別。
非遞歸實現(xiàn)有點麻煩

2. 組合

2.1 什么是組合

有abc
得 null,a, b, c, ab, ac, bc, abc

2.2 遞歸的思路

假設我們想在長度為n的字符串中求m個字符的組合。我們先從頭掃描字符串的第一個字符。針對第一個字符,我們有兩種選擇:第一是把這個字符放到組合中去,接下來我們需要在剩下的n-1個字符中選取m-1個字符;第二是不把這個字符放到組合中去,接下來我們需要在剩下的n-1個字符中選擇m個字符。這兩種選擇都很容易用遞歸實現(xiàn)。

由于組合可以是0個字符的組合,1個字符的組合,2個字符的字符……一直到n個字符的組合,再加個循環(huán)就好了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,728評論 18 399
  • 查理芒格在一次演講中說過他不能告訴同學如何才能得到幸福,但能夠根據(jù)個人經驗告訴他們如何過上痛苦的生活: 要反復無常...
    anghoo閱讀 914評論 3 2
  • 不知不覺已經五月份了,處于南北交界的小縣城的陰雨天還有些涼,此時窗外的細雨停駐了下來。 在李虹光著身子系著圍裙在廚...
    夜半獨上高樓閱讀 330評論 2 3

友情鏈接更多精彩內容