1. 排列
鏈接
注意字符重復(fù)與非重復(fù)兩種情況的區(qū)別县爬。
非遞歸實(shí)現(xiàn)有點(diǎn)麻煩
2. 組合
2.1 什么是組合
有abc
得 null,a, b, c, ab, ac, bc, abc
2.2 遞歸的思路
假設(shè)我們想在長(zhǎng)度為n的字符串中求m個(gè)字符的組合沸移。我們先從頭掃描字符串的第一個(gè)字符。針對(duì)第一個(gè)字符侄榴,我們有兩種選擇:第一是把這個(gè)字符放到組合中去雹锣,接下來我們需要在剩下的n-1個(gè)字符中選取m-1個(gè)字符;第二是不把這個(gè)字符放到組合中去癞蚕,接下來我們需要在剩下的n-1個(gè)字符中選擇m個(gè)字符蕊爵。這兩種選擇都很容易用遞歸實(shí)現(xiàn)。
由于組合可以是0個(gè)字符的組合涣达,1個(gè)字符的組合在辆,2個(gè)字符的字符……一直到n個(gè)字符的組合证薇,再加個(gè)循環(huán)就好了。