问题描述:

解题思路:
1.第一个,字符相等,而且字符必须是大写字母,并且字符的对应位置也相等,且必须在‘A’~ ‘G’ 之间。(星期几)
2.第二个,字符相等,而且字符必须在‘0’~ ‘9’ 或 ‘A’ ~ ‘N’之间。 (小时)
3.第三个,字符相等, 而且必须是字母。(分钟)
Python 代码:(19分)
a = input()
b = input()
c = input()
d = input()
week = {'A': 'MON', 'B': 'TUE', 'C': 'WED', 'D': 'THU', 'E': 'FRI', 'F': 'SAT', 'G': 'SUN'}
num0to9 = [str(i) for i in range(0, 10)]
charAtoN = [chr(i) for i in range(65, 79)] # chr()函数用于生成相应ASCII码对应的字符,A/N的ASCII码分别是65/78
num0to23 = ['{:0>2}'.format(str(i)) for i in range(0, 24)] # 生成00~23,format格式化函数实现个位数的补位
hour = dict(zip(num0to9 + charAtoN, num0to23)) # zip()函数用于将两个列表合并,在hour中,num0to9+letterAtoN为索引,num0to23为对应元素
res = '' # 保存结果,初始化为空串
for i in range(0, len(a)): # 星期
if a[i] in week and a[i] == b[i]:
res += (week[a[i]] + ' ')
break # 检测到星期后加空格,并及时跳出
for j in range(i + 1, len(a)): # 在上一步检测星期的基础上继续寻找小时,遍历的初始位置=上一步星期的位置+1
if a[j] in hour and a[j] == b[j]:
res += hour[a[j]] + ':'
break
for k in range(0, len(c)): # 分钟
if c[k] == d[k] and ('A' <= c[k] <= 'Z' or 'a' <= c[k] <= 'z'): # 相同字符为字母
res += '{:0>2}'.format(str(k)) # 格式化字符串,个位数以'0'补位
break
print(res)

347

被折叠的 条评论
为什么被折叠?



