PAT1014 提交后出现三个检查点为非零返回,就不知道是什么原因
1014 福尔摩斯的约会
分数 20
作者 CHEN, Yue
单位 浙江大学
大侦探福尔摩斯接到一张奇怪的字条:
我们约会吧!
大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同的字符是 E ,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 23 点由数字 0 到 9、以及大写字母 A 到 N 表示);后面两字符串第 1 对相同的英文字母 s 出现在第 4 个位置(从 0 开始计数)上,代表第 4 分钟。现给定两对字符串,请帮助福尔摩斯解码得到约会的时间。
输入格式:
输入在 4 行中分别给出 4 个非空、不包含空格、且长度不超过 60 的字符串。
输出格式:
在一行中输出约会的时间,格式为 DAY HH:MM,其中 DAY 是某星期的 3 字符缩写,即 MON 表示星期一,TUE 表示星期二,WED 表示星期三,THU 表示星期四,FRI 表示星期五,SAT 表示星期六,SUN 表示星期日。题目输入保证每个测试存在唯一解。
'''
输入样例:
3485djDkxh4hhGE
2984akDfkkkkggEdsb
s&hgsfdk
d&Hyscvnm
输出样例:
THU 14:04
'''
'''
思路:
第一行与第二行字符串中,
第一对相同的大写字母表示星期几,
第二对相同的大写字母表示第几个小时。
第三行与第四行字符串中,
第一对相同的字符串表示第几分钟
'''
list_1 = list(input())
list_2 = list(input())
list_3 = list(input())
list_4 = list(input())
date_list = []
i = 0
while i < min(len(list_1), len(list_2)) :
if list_1[i].isupper() == True :
if list_1[i] == list_2[i] :
date_list.append(list_1[i])
i += 1
else :
i += 1
else :
i += 1
i = 0
while i < min(len(list_3), len(list_4)) :
if list_3[i] != list_4[i] :
i += 1
else :
if list_3[i].isalpha() == True :
date_list.append(i)
break
else :
i += 1
# 创建列表来转换时间,并打印日期
day_1 = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
day_2 = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN']
time_1 = ['0', '1', '2', '3', '4', '5',
'6', '7', '8', '9', 'A', 'B',
'C', 'D', 'E', 'F', 'G', 'H',
'I', 'J', 'K', 'L', 'M', 'N']
time_2 = ['00', '01', '02', '03', '04', '05',
'06', '07', '08', '09', '10', '11',
'12', '13', '14', '15', '16', '17',
'18', '19', '20', '21', '22', '23']
fen_1 = ['0', '1', '2', '3', '4', '5',
'6', '7', '8', '9']
fen_2 = ['00', '01', '02', '03', '04', '05',
'06', '07', '08', '09' ]
n = day_1.index(date_list[0])
day = day_2[n]
n = time_1.index(date_list[1])
shi = time_2[n]
if date_list[2] < 10 :
n = fen_1.index(str(date_list[2]))
fen = fen_2[n]
else :
fen = date_list[2]
print(str(day) + ' ' + str(shi) + ':' + str(fen))