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