作者gary771016 (一日测 终身测)
看板Python
标题[问题] 三题演算法的问题
时间Sun Aug 13 13:04:13 2017
大家好
刚刚考完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]"
"
[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解~
请大神解惑...
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.230.37.187
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1502600657.A.95A.html
1F:推 Django: 你要去T公司吼XD 08/13 13:34
2F:→ bibo9901: 都是很简单的题目...照着做就好了 08/13 13:41
3F:→ bruce0209: 第2题是要找最少次吗? 08/13 14:58
T公司应该没机会了XD 现在开始要好好研读相关书籍
第2题 应该是按照顺序的(0,1,2,....) 不会有多种变化~
题目是懂啦 就是不知道怎麽去解阿 囧
而且第3题像这种的是怎麽去捞数字...有相关的API?
※ 编辑: gary771016 (36.230.37.187), 08/13/2017 15:53:44
4F:→ bruce0209: 第2题乘客是按照顺序就不好玩了阿囧SZ 08/13 16:00
5F:→ bruce0209: 我以为是找停留最少次数的解 08/13 16:00
6F:推 Django: 一个一个比对为什麽会误判啊XD 就按部就班做也ok啊 08/13 16:08
7F:→ bruce0209: 第3题我想到的是import re 08/13 16:20
8F:→ bruce0209: 可是我regular expression不熟XD 08/13 16:20
9F:→ bruce0209: 笨方法应该一个一个字去转int看是不是数字也行吧 08/13 16:21
疑 第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
10F:→ bruce0209: 多一点判断还是能达成任务阿 08/13 16:27
11F:→ bruce0209: 笨方法总比没方法好吧 08/13 16:31
12F:推 wennie0433: t公司无误XD 08/13 18:11
13F:→ darkgerm: 其实就是按题目叙述的去爆力实作,没什麽特别的演算法 08/13 23:06
了解~
当下陷入沉思 没跳脱出来 好可惜 冏
※ 编辑: gary771016 (36.230.37.187), 08/14/2017 00:17:23
14F:推 oledu: 想知道t公司是哪间~~ 08/16 06:58
15F:→ uranusjr: 做防毒那间 08/18 13:07
16F:推 indigolemon: 朝圣 2017/9/13 还是这三题 09/16 14:48
17F:推 play1921: 朝圣 考完才看到 2017/11/16还是这三题 11/17 09:44