招行卡中心笔试
2023.4.9
1.小红拿到了一个字符串,她希望每隔k个字符就删除一个字符(第一个字符必定删除)。你能帮小红输出最终的字符串吗?
输入描述:
第一行输入一个正整数k。
第二行输入一个字符串,长度不超过200000且大于1。
1≤k≤100。
输出描述:
删除后的字符串。
输入:
2
ans?-1:1
输出:
ns-11
n = int(input()) + 1
s = input()
ans = ''
for i in range(len(s)):
if i % n == 0:
continue
ans += s[i]
print(ans)
2.考试结束了,小红拿到了大家的成绩单。总共有语文、数学、英语3科的信息,已经总成绩的信息。但是成绩单有一些地方模糊不清了。你可以帮小红尽量还原一下吗?
输入描述:
第一行输入一个正整数n,代表学生人数。
接下来的几行,每行输入若干字符串和整数,从左到右别是学生姓名、语文成绩、数学成绩、英语成绩、总成绩。
学生姓名是长度不大于10且仅有小写字母的字符申,语文成绩、数学成绩、英语成绩、总成绩都是整数。
如果某个地方看不清了,则会用"?"表示。
1≤n≤100
每科最低0分,满分100分。
输出描述:
共输出n行,需要将能还原的尽量还原。
输出需要按每个人的总成绩进行排序,总成绩相同的按名字字典序升序进行排序(若此时名字无法确认则排在该总成绩的最下面,有多个无法确认时按输入的顺序排序)。若有总成绩无法确认则排在最下面,同样按名字字典序升序(若此时名字无法确认则排在最下面,有多个无法确认时按输入的顺序排序)。
输入:
8
ranko 100 100 100 ?
kotori 90 ? 80 ?
? ? 22 ? ?
ayya ? 80 ? 240
ruby 59 100 ? 200
? 80 90 ? ?
? 80 90 70 240
aya 80 80 80 ?
输出:
ranko 100 100 100 300
aya 80 80 80 240
ayya ? 80 ? 240
? 80 90 70 240
ruby 59 100 41 200
kotori 90 ? 80 ?
? ? 22 ? ?
? 80 90 ? ?
n = int(input())
data = []
for i in range(n):
p = input().split()
for j in range(len(p)):
try:
p[j] = int(p[j])
except:
None
data.append(p)
for p in data:
table = {}
for i in range(1, 5):
if p[i] != '?': table[i] = p[i]
if len(table) == 4 or len(table) < 3:
continue
if 1 not in table: p[1] = p[4] - p[3] - p[2]
elif 2 not in table: p[2] = p[4] - p[3] - p[1]
elif 3 not in table: p[3] = p[4] - p[2] - p[1]
else: p[4] = p[1] + p[2] + p[3]
for p in data:
if p[0] == '?': p[0] = 'z'*11
if p[-1] == '?': p[-1] = -1
data.sort(key=lambda x:(-x[-1], x[0]))
for i in range(len(data)):
p = data[i]
if p[-1] == -1: p[-1] = '?'
if p[0] == 'z'*11: p[0] = '?'
for j in range(len(p)):
if type(p[j]) == int:
p[j] = str(p[j])
for p in data:
print(' '.join(p))
snowy