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

作者: gary771016 (一日測 終身測)   2017-08-13 13:04:13
大家好
剛剛考完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條測資)
"[email protected]"
"[email protected]m"
"[email protected]"
"[email protected]"
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解~
請大神解惑...
謝謝
作者: uranusjr (←這人是超級笨蛋)   2017-08-18 13:07:00
做防毒那間
作者: Django (Cython)   2017-08-13 13:34:00
你要去T公司吼XD
作者: bibo9901 (function(){})()   2017-08-13 13:41:00
都是很簡單的題目...照著做就好了
作者: bruce0209 (士賢)   2017-08-13 14:58:00
第2題是要找最少次嗎?第2題乘客是按照順序就不好玩了阿囧SZ我以為是找停留最少次數的解
作者: Django (Cython)   2017-08-13 16:08:00
一個一個比對為什麼會誤判啊XD 就按部就班做也ok啊
作者: bruce0209 (士賢)   2017-08-13 16:20:00
第3題我想到的是import re可是我regular expression不熟XD笨方法應該一個一個字去轉int看是不是數字也行吧多一點判斷還是能達成任務阿笨方法總比沒方法好吧
作者: wennie0433   2017-08-13 18:11:00
t公司無誤XD
作者: darkgerm (黑駿)   2017-08-13 23:06:00
其實就是按題目敘述的去爆力實作,沒什麼特別的演算法
作者: oledu (oLedu)   2017-08-16 06:58:00
想知道t公司是哪間~~

Links booklink

Contact Us: admin [ a t ] ucptt.com