第一题:对几个硬盘按照内存大小排序
要求对提供的几个不同容量的硬盘从小到大排序
输入: 第一行为 硬盘数量,后面每行为 每个硬盘的大小 (单位是M,G,T的组合形势), eg. 3M2G, 1024M, 5G12M, 2T15M
输出: 按从小到大的顺序输出 (注意同等大小的硬盘(eg.1024M 和 1G),需要保序输出)
举例:
3
1T
3M2G
2G5M
输出:
3M2G
2G5M
1T
while True:
try:
comp_li = []
for _ in range(int(input())):
string = input()
a = ""
total_v = 0
for ch in string:
if ch.isdigit():
a += ch
else:
if ch == "T":
total_v += int(a)*1024*1024
elif ch == "G":
total_v += int(a)*1024
elif ch == "M":
total_v += int(a)
a = ""
comp_li.append([string, total_v])
print("comp_li: ", comp_li)
items = sorted(comp_li, key=lambda x: x[1])
print("items:", items)
for item in items:
print(item[0])
except:
break
第二题: 匹配字符串
要求从字符串t中找出第一个字符串p 对应在t中的下标(注意:下标从1开始算起),规定 字符串 t比 p 长
输入: 第一行为字符串 t, 第二行为字符串 p
输出: 对应的下标
举例:
输入的两行为:
AVERDXIVYERDIAN
RDXI
输出为: 4
while True:
try:
t = input()
p = input()
nt, np = len(t), len(p)
for i in range(len(t)):
if len(t) - i < len(p):
print("No")
break
if p == t[i:i+np]:
print(i+1)
break
except:
break
第三题:求给员工发月饼的分法的数量
n个月饼发给m个员工,要求每个员工至少一个月饼,且按照分发的数量排序后,相邻分发数量之间的差值 <=3
输入:第一行为 m, n,以空格分隔
输出:一共多少种分法
举例:
输入:2 5
输出:2 (解释:5=1+4, 5=2+3. 注意:2+3和3+2算为同一种分法)
恕我愚笨,没写出来... 欢迎大家提供解法