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)就好了。