zoukankan      html  css  js  c++  java
  • 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

      

  • 相关阅读:
    Eclipse配置SVN的几种方法及使用详情
    python爬虫实战:基础爬虫(使用BeautifulSoup4等)
    MySQL中case when的基本用法总结
    SQL常见的一些面试题(太有用啦)
    Python应用——自定义排序全套方案
    Hadoop运维
    图形化查看maven的dependency依赖
    mac os x 10.10.3 安装protoc
    创业方向:O2O及移动社交 from 沈博阳
    手动编译安装docker环境,以及偶尔出现的bug
  • 原文地址:https://www.cnblogs.com/SCP-514/p/13222551.html
Copyright © 2011-2022 走看看