[問題] 組合排列?
問題定義:
在一有次序的n個字元中,要取k個,且此k個也依然要有依序性的組合
例如:"ABCDEF"(依字母大小排列) 六個字元要取 4個的組合
有:ABCD, ABCE, ABCF, ABDE, ABDF, ABEF,
ACDE, ACDF, ADEF, BCDE, BCDF, BCEF, BDEF, CDEF
問題點:
想了好幾天,一直想不出來,依照平常的做法似乎要如下:
for (i = 0 ; i < str.length() - k + 1 ; i++){
for ( j = i + 1 ; j < i + str.length() - k + 1; j++){
for ( m = j + 1; m < j + str.length() - k + 1; m++){
for ..
temp = 第i個字元+第j個字元..
subset+= temp;
用四個迴圈,第一個迴圈去固定第一個字元然後去迴圈第2, 3, 4個字元
直到四個迴圈跑完可得最後全部的集合,但這樣的方式總是很土法鍊鋼
而且k的值也不固定,也有可能六取三,請問各位版大們是否有更好的建議,
小弟試過用遞迴,但似乎功力太弱,一直跑不出來,麻煩各位前輩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.156.185
推
01/11 21:26, , 1F
01/11 21:26, 1F
→
01/11 21:28, , 2F
01/11 21:28, 2F
討論串 (同標題文章)