Recheriring 2022-09-27 21:25 采纳率: 50%
浏览 11

PAT1014 提交后出现三个检查点为非零返回,就不知道是什么原因

PAT1014 提交后出现三个检查点为非零返回,就不知道是什么原因

img

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))



  • 写回答

1条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-09-27 21:41
    关注

    有没有这样一种可能,测试的数据第一对相同的大写字母大于G,第二对相同的大写字母大于N?这样就无法找到正确的日子了

    评论

报告相同问题?

问题事件

  • 修改了问题 9月27日
  • 修改了问题 9月27日
  • 创建了问题 9月27日

悬赏问题

  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 three.js添加后处理以后模型锯齿化严重