大家好
刚刚考完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解~
请大神解惑...
谢谢