作者ptt0720 (濕濕)
看板Python
標題[問題] 排列組合只取一半
時間Mon Aug 21 22:09:10 2017
最近寫題目寫到一題
http://i.imgur.com/vYeB7nL.png
要先把字串依照a b c順序排列好
之後進行排列組合
然後印出最中間的那一筆
我用的方法是itertools的module
但是在server進行運算的時候 系統說我超過時間了
限制時間是12000ms
我的code
http://i.imgur.com/YvcrD7b.png
我在想應該是產生全部排列組合太沒有效率了
但是又不知道如何生成一半組合就好
--
You’ve got to find what you love - Steve Jobs
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.67.167.138
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1503324556.A.EA0.html
1F:→ bibo9901: 他要的是 第N!/2 個排,其實是可以直接算出來的 08/21 22:14
2F:→ bibo9901: "abc"的所有排列裡a開頭、b開頭、c開頭的各有2個 08/21 22:17
3F:→ bibo9901: 所以perm("abc", 3) = "b" + perm("ac", 1) 08/21 22:18
4F:→ bibo9901: 然後遞迴就解了 08/21 22:18
5F:→ bibo9901: ps. perm(s, k) 代表 s的第k個排列 08/21 22:23
6F:→ ptt0720: 可以用abcd舉例嗎 不太懂@@ 08/21 22:58
7F:→ ptt0720: 我印list(perm(string,middle))是空的 08/21 23:02
8F:→ ptt0720: perm(m,n) n好像是取樣數 不是第幾種 08/21 23:24
9F:→ bibo9901: 那只是我用的記號而已 08/21 23:46
10F:→ ptt0720: 有人有不同的解釋方式嗎 麻煩各位了 08/22 00:02
11F:推 aegius1r: 用next+itertools.islice應該可以做? 08/22 01:06
12F:→ uranusjr: 這根本不用產生吧, 中間那個不就是從中間往左右排的結果 08/22 02:44
13F:推 k1dave6412: 題目是在哪裡的啊,好奇 08/23 02:09