题目链接
- 第一对出现的相同的大写字母代表的星期,官方给的输入不应该保证第一个相同的大写字母在A~G之间吗?
- 第二对相同的字符代表小时,这里的二是指上面相同的大写字母后面,而不是从头开始计算。官方这个有没有说是相同的大写字母,但是题目就默认成了大写字母。
- 第一对出现相同字母的位置代表分钟。
- 感觉官方就是在他娘的和我玩文字游戏。
C++代码
#include <iostream>
#include<string>
#include<vector>
#include<math.h>
#include <algorithm>
using namespace std;
int main() {
char a, b;
int c;
int i = 0;
string s1, s2, s3, s4;
cin >> s1 >> s2 >> s3 >> s4;
string date[7] = { "MON","TUE","WED","THU","FRI","SAT","SUN" };
int m = min(s1.size(), s2.size());
while (i < m) {
if (s1[i] == s2[i] && (s1[i] >= 'A'&&s1[i] <= 'G')) {
a = s1[i];
break;
}
i++;
}
i++;
while (i < m) {
if (s1[i] == s2[i] && ((s1[i] >= 'A'&&s1[i] <= 'N') || isdigit(s1[i]))) {
b = s1[i];
break;
}
i++;
}
m = min(s3.size(), s4.size());
for (int j = 0; j < m; j++) {
if (s3[j] == s4[j] && isalpha(s3[j])) {
c = j;
break;
}
}
cout << date[a - 'A'] << " ";
int hour = 0;
if (isdigit(b)) {
hour = b - '0';
}
else {
hour = b - 'A' + 10;
}
printf("%02d:", hour);
printf("%02d", c);
return 0;
}
复制代码
python3 代码
def main():
a = input()
b = input()
c = input()
d = input()
date = {'A':'MON','B':'TUE','C':'WED','D':'THU','E':'FRI','F':'SAT','G':'SUN'}
hour = {'0': '00', '1': '01', '2': '02', '3': '03', '4': '04', '5': '05', '6': '06', '7': '07',
'8': '08', '9': '09', 'A': '10', 'B': '11', 'C': '12', 'D': '13', 'E': '14', 'F': '15',
'G': '16', 'H': '17', 'I': '18', 'J': '19', 'K': '20', 'L': '21', 'M': '22', 'N': '23'}
res = []
local = 0
for i in range(len(a)):
if(a[i]==b[i] and a[i] in date.keys()):
res.append(a[i])
local = i
break
for i in range(local+1,len(a)):
if(a[i] == b[i] and a[i] in hour.keys()):
res.append(a[i])
break
for i,ch in enumerate(c):
if(ch == d[i] and ch.isalpha()):
res.append(i)
print("%s %s:%02d" % (date[res[0]],hour[res[1]],res[2]))
main()
复制代码