1028 人口普查 (20 分)
某城鎮進行人口普查,得到了全體居民的生日。現請你寫個程式,找出鎮上最年長和最年輕的人。
這裡確定每個輸入的日期都是合法的,但不一定是合理的——假設已知鎮上沒有超過 200 歲的老人,而今天是 2014 年 9 月 6 日,是以超過 200 歲的生日和未出生的生日都是不合理的,應該被過濾掉。
輸入格式:
輸入在第一行給出正整數 N,取值在(0,105];随後 N 行,每行給出 1 個人的姓名(由不超過 5 個英文字母組成的字元串)、以及按
yyyy/mm/dd
(即年/月/日)格式給出的生日。題目保證最年長和最年輕的人沒有并列。
輸出格式:
在一行中順序輸出有效生日的個數、最年長人和最年輕人的姓名,其間以空格分隔。
輸入樣例:
5
John 2001/05/12
Tom 1814/09/06
Ann 2121/01/30
James 1814/09/05
Steve 1967/11/20
輸出樣例:
3 Tom John
這個題可能拿别的語言寫有點麻煩,但是python對這個題來說真的友善啊。。一開始我也沒想到,看見了Raaay233的代碼才想起來, 這種日期的比較,可以直接當作字元串來比較,即'2001/05/12'<'2014/09/06'這樣
N=int(input())
ls=[]
for i in range(N):
ls.append(input().split())
#print(ls)
str_max=['2014/09/06','']
str_min=['1814/09/06','']
cnt=0
for i in range(N):
if ls[i][1]>='1814/09/06' and ls[i][1]<='2014/09/06':
cnt+=1
if ls[i][1]<str_max[0]:
max1=ls[i][0]
str_max[0]=ls[i][1]
if ls[i][1]>str_min[0]:
min1=ls[i][0]
str_min[0]=ls[i][1]
if cnt==0:
print(0)
else:
print(cnt,max1,min1)
代碼和Raaay233的非常像(畢竟是看了人家的以後寫的,大體思路也是人家的),背着寫的啊,沒有故意照着寫
而且這段代碼在最後一個測試點上逾時了