查找元素
- 考试座位号
import time
time_start=time.time()
n=int(input())
dic = {}
for i in range(n):
a,b,c=input().split()
dic[b] = a + ' ' + c
num=int(input())
#print(dic)
s = input()
item = s.split(' ')
ls = [eval('x') for x in item]
for i in range(num):
print(dic[ls[i]])
time_end=time.time()
print('time cost',time_end-time_start,'ms')
利用键值对,key为机试座位号,value为准考证号加考试座位号。
- 成绩排名
import time
time_start=time.time()
n=int(input())
dic = {}
maxx = -1
minn = 100
for i in range(n):
a,b,c=input().split()
dic[int(c)] = a + ' ' + b
if int(c) > maxx:
maxx = int(c)
if int(c)<minn:
minn = int(c)
#print(maxx,minn)
print(dic[maxx])
print(dic[minn])
time_end=time.time()
print('time cost',time_end-time_start,'ms')
- 人口普查
import time
time_start=time.time()
import datetime as dt
from dateutil import rrule
youngest = dt.datetime.strptime('1814/9/6','%Y/%m/%d')
oldest = dt.datetime.strptime('2014/9/6','%Y/%m/%d')
young = oldest
old = youngest
n = int(input())
people = []
count = 0
for i in range(n):
a = input().split()
ls = [eval('x')for x in a]
people.append(ls)
for i in range(n):
date = dt.datetime.strptime(people[i][1],'%Y/%m/%d')
if date>=old and date<=young:
count += 1
if date > youngest:
youngest = date
ynum = i
if date < oldest:
oldest = date
onum = i
print(count,people[onum][0],people[ynum][0])
time_end=time.time()
print('time cost',time_end-time_start,'ms')
- 挖掘机技术哪家强
import time
time_start=time.time()
n = int(input())
cam = {}
maxx = 0
for i in range(n):
a,b = map(int,input().split())
if a in cam:
cam[a] += b
else:
cam[a] = b
if cam[a] > maxx:
maxx = cam[a]
num = a
#print(cam)
print(num,maxx)
time_end=time.time()
print('time cost',time_end-time_start,'ms')
用in来判断该编码下的学校之前是否有在字典中存入成绩,避免成绩被覆盖
- World Cup Betting
import time
time_start=time.time()
def change(x):
if x == 0:
return 'W'
if x == 1:
return 'T'
if x == 2:
return 'L'
m = []
max_i = []
for i in range(3):
a,b,c = map(float,input().split())
m.append([a,b,c])
for i in range(3):
max_i.append(max(m[i]))
print(change(m[i].index(max(m[i]))),end=' ')
print('%.2f'%((max_i[0]*max_i[1]*max_i[2]*0.65-1)*2))
time_end=time.time()
print('time cost',time_end-time_start,'ms')
- Sign In and Sign Out
import time
time_start=time.time()
n = int(input())
matrix = []
for i in range(n):
item = input().split()
m = [x for x in item]
matrix.append(m)
arrive = matrix[0][1]
leave = matrix[0][2]
for i in range(n):
if matrix[i][1] < arrive:
arrive = matrix[i][1]
earliest = i
if matrix[i][2] > leave:
leave = matrix[i][2]
latest = i
print(matrix[earliest][0],matrix[latest][0])
time_end=time.time()
print('time cost',time_end-time_start,'ms')
python的时间比较大小可以直接用字符串比较
- Boys vs Girls
import time
time_start=time.time()
n = int(input())
matrix = []
Mlowest = 101
Fhighest = -1
countM = 0
countF = 0
for i in range(n):
item = input().split()
m = [x for x in item]
matrix.append(m)
for i in range(n):
grade = int(matrix[i][3])
if matrix[i][1] == 'M':
countM += 1
if grade < Mlowest:
Mlowest = grade
ml = i
else:
countF += 1
if grade > Fhighest:
Fhighest = grade
fh = i
if countF == 0:
print('Absent')
else:
print(matrix[fh][0],matrix[fh][2])
if countM == 0:
print('Absent')
else:
print(matrix[ml][0],matrix[ml][2])
if countF and countM:
print(int(matrix[fh][3])-int(matrix[ml][3]))
else:
print('NA')
time_end=time.time()
print('time cost',time_end-time_start,'ms')