PTA 乙级 1014 福尔摩斯的约会 (20分) Python

Python

分析

  • 因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四
  • 所以这句话注意的点是:
  • 1.第一对相同
  • 2.大写英文字母
  • 3.一周只有七天,所以大写英文字母的范围是A-G,不是A-Z;
  • 第 2 对相同的字符是 E ,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 23 点由数字 0 到 9、以及大写字母 A 到 N 表示);
  • 1.第二对相同的字符,不一定是英文字母,还可能是数字。
  • 2.大写英文字母,而且是A-N,不是A-Z.
  • 3.第二对,是在第一对之前,在第一对之后,不需要从头开始比较。
  • 后面两字符串第 1 对相同的英文字母 s 出现在第 4 个位置(从 0 开始计数)上,代表第 4 分钟。
  • 1.英文字母
  • 2.下标从0开始

将输入保存到列表中,星期的对应用字典保存,输入对应的键即可,for循环遍历前两个字符串输出星期和小时,另一个for遍历后两个字符串输出分钟,有一下几个注意点:

  • 小时和分钟的输出需要补齐0,利用字符串的格式化输出即可做到(format)(测试点4
  • 题目用的均是第一个和第二个相等的字符,所以输出第二个相等字符的内容后应直接break,否则后面会重复输出
  • 输出星期和小时之间是利用一个标志位进行切换,且两个之间切换要用 if-elif 进行切换,不可以用 if-if ,否则会进行完星期判断直接进入小时的语句(会全错,很爆炸,我是傻子。。。)
  • 测试点1,2的错误说明在代码注释中,看代码吧
     1 time = []                       #列表存储输入数据
     2 flag = False                    #小时输出标志位
     3 for i in range(4):  
     4     time.append(input())
     5 week = {"A":"MON","B":"TUE","C":"WED","D":"THU",    #定义字典对应星期
     6         "E":"FRI","F":"SAT","G":"SUN"}
     7 for i in range(min(len(time[0]),len(time[1]))):     #输出星期和小时
     8     if(time[0][i] == time[1][i] and 
     9        'A' <= time[0][i] <= 'G' and not flag):      #对应位相等且位于A~G之间,小时标志位为false
    10         print(week.get(time[0][i]),end = " ")       #输出星期
    11         flag = True
    12     elif(time[0][i] == time[1][i] and flag):        #小时输出位为true
    13         if('A' <= time[0][i] <= 'N'):
    14             print(ord(time[0][i])-ord('A')+10,end = ":") #小时输出
    15             break                                   #不可以将两个break合并,必须在条件内break,否则会出现测试点2,3无法通过的现象
    16         elif('0' <= time[0][i] <= '9'):
    17             print("{:02}".format(ord(time[0][i])-ord('0')),end = ":")
    18             break
    19 for i in range(min(len(time[2]),len(time[3]))):
    20     if(time[2][i] == time[3][i] and 
    21        ('a' <= time[2][i] <= 'z' or 'A' <= time[2][i] <= 'Z')):
    22         print("{:02}".format(i))                    #分钟输出
    23         break

     

  

 

posted @ 2020-07-02 01:09  上帝的绵羊  阅读(423)  评论(0编辑  收藏  举报