[問題] 三題演算法的問題

看板Python作者 (一日測 終身測)時間6年前 (2017/08/13 13:04), 6年前編輯推噓6(6011)
留言17則, 9人參與, 最新討論串1/1
大家好 剛剛考完Codility~ 小弟沒什麼接觸資結/演算法 (最多就是zerojudge 寫寫很簡單的題目 囧) 總之應該是爆了 只會一題也不見得是最佳解 一. Email字串處理 輸入email(S)和網域名(C) Function(S,C) S=["aa bb cc; xx yy z-z; aa bb; aa bx cc"] C=["test"] 輸出結果大概會是(這裡舉例有4條測資) "cc_aa_b@test.com" "zz_xx_y@test.com" "bb_aa@test.com" "cc_aa_b2@test.com" 1.全部都要變成小寫 2.輸出順序為 第3+第1+第2 或是 第2+第1 3.有三個名字的 第三個有減號要消去合併 (只有兩個名字的...沒考慮到...) 4.有三個名字的 最後那一個名字取開頭 5.以上條件達成 但還是相同的話 後面加上編號 勉強算是解了... 二. 搭電梯問題 要算出電梯總共停幾次 (最後還要加上回到地面的1次) 有一群人要搭電梯 按照順序進入電梯/離開電梯 (可能後面的人已經到達想要的樓層但不能出去 因為前面還有人沒出去) Function(A,B,M,X,Y) A=這些人的體重 B=這些人想要去的樓層 (直接對應A) M=最大樓層數 X=電梯最大容納人數 Y=電梯最大容量體重 M=5 X=2 Y=200 A[0] = 60 B[0] = 2 A[1] = 80 B[1] = 3 A[2] = 40 B[2] = 5 先載0,1 上2樓,3樓 停2次 回到地面 停1次 再載2 上5樓 停1次 再回到地面 停1次 答案 總共5次 M=3 X=5 Y=200 A[0] = 40 B[0] = 3 A[1] = 40 B[1] = 3 A[2] = 100 B[2] = 2 A[3] = 80 B[3] = 2 A[4] = 20 B[4] = 3 載0,1,2 上3樓 停1次 (電梯裡剩2號) 到2樓 停1次 (2號走出) 到地面 停1次 載3,4 上2樓 上3樓 停2次 到地面 停1次 答案 總共6次 完全沒有頭緒...測資應該會有上有下的 又有可能一次走出很多人 3. 字串比較問題 剛好有原文題目 https://munibsiddiqui.wordpress.com/2016/11/14/codility-ocr/ 大概意思是 數字可以取代成任意字母 但數字代表字母的出現次數 "A2Le" 和 "2pL1" 擁有相同形式的字串比如 "Apple" (A配上2個隨意字母+Le 和 2個隨意字母+pL+1個隨意字母 剛好"Apple"符合這2個條件) "a10" 和 "10a" 也一樣 "asssssXXXXXa"很多種搭配方式 "ba1" 和 "1Ad" 剛好中間無法match 所以不可能有相同形式的字串 "3x2x" 和 "8" 左邊長度7 右邊長度8 也不可能有答案 我不知道怎麼去從字串中找出數字 因為可能會有一次2位數以上 一個一個比對又會誤判 以上都用Python解~ 請大神解惑... 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.37.187 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1502600657.A.95A.html

08/13 13:34, , 1F
你要去T公司吼XD
08/13 13:34, 1F

08/13 13:41, , 2F
都是很簡單的題目...照著做就好了
08/13 13:41, 2F

08/13 14:58, , 3F
第2題是要找最少次嗎?
08/13 14:58, 3F
T公司應該沒機會了XD 現在開始要好好研讀相關書籍 第2題 應該是按照順序的(0,1,2,....) 不會有多種變化~ 題目是懂啦 就是不知道怎麼去解阿 囧 而且第3題像這種的是怎麼去撈數字...有相關的API? ※ 編輯: gary771016 (36.230.37.187), 08/13/2017 15:53:44

08/13 16:00, , 4F
第2題乘客是按照順序就不好玩了阿囧SZ
08/13 16:00, 4F

08/13 16:00, , 5F
我以為是找停留最少次數的解
08/13 16:00, 5F

08/13 16:08, , 6F
一個一個比對為什麼會誤判啊XD 就按部就班做也ok啊
08/13 16:08, 6F

08/13 16:20, , 7F
第3題我想到的是import re
08/13 16:20, 7F

08/13 16:20, , 8F
可是我regular expression不熟XD
08/13 16:20, 8F

08/13 16:21, , 9F
笨方法應該一個一個字去轉int看是不是數字也行吧
08/13 16:21, 9F
疑 第3題 如果遇到 "a10" 這樣代表的是a+10個字母 一個一個對會變成 "1" "0" 是不是變成我還要判斷下一個是否為數字是的話再接下去 然後再把它變成完整的數字? ※ 編輯: gary771016 (36.230.37.187), 08/13/2017 16:26:33 ※ 編輯: gary771016 (36.230.37.187), 08/13/2017 16:27:22

08/13 16:27, , 10F
多一點判斷還是能達成任務阿
08/13 16:27, 10F

08/13 16:31, , 11F
笨方法總比沒方法好吧
08/13 16:31, 11F

08/13 18:11, , 12F
t公司無誤XD
08/13 18:11, 12F

08/13 23:06, , 13F
其實就是按題目敘述的去爆力實作,沒什麼特別的演算法
08/13 23:06, 13F
了解~ 當下陷入沉思 沒跳脫出來 好可惜 冏 ※ 編輯: gary771016 (36.230.37.187), 08/14/2017 00:17:23

08/16 06:58, , 14F
想知道t公司是哪間~~
08/16 06:58, 14F

08/18 13:07, , 15F
做防毒那間
08/18 13:07, 15F

09/16 14:48, , 16F
朝聖 2017/9/13 還是這三題
09/16 14:48, 16F

11/17 09:44, , 17F
朝聖 考完才看到 2017/11/16還是這三題
11/17 09:44, 17F
文章代碼(AID): #1PZztHbQ (Python)