1014. 福尔摩斯的约会 (20)

来源:互联网 发布:java动态bean 编辑:程序博客网 时间:2024/05/17 07:30

只能说这道题出的非常烂吧,作为一道程序题目,怎么可以题目描述这么模糊不清。
真正的清楚叙述如下:
确定星期:前两个字符串中位置相同且字符相同的第一个大写字母,并且应处于[A-G]
确定小时:接星期的字符向后查找,位置相同的下一个相同的字符,并且处于[0-9A-N]
确定分钟:后两个字符串中位于相同位置且相同的第一个字母
条件整的不清不白的,浪费做题人的时间简直。

// 2017/10/14 NCU // PAT-B 1053// scienceZ#include <cstdio>#include <cstring>#include <map>#include <iostream>#include <algorithm>using namespace std;int day, hour, mymin, key1 = 1, key2 = 0;char a[100], b[100], c[100], d[100];map<char, string> arr1;map<char, int> arr2;void begin(){    arr1['A'] = "MON";    arr1['B'] = "TUE";    arr1['C'] = "WED";    arr1['D'] = "THU";    arr1['E'] = "FRI";    arr1['F'] = "SAT";    arr1['G'] = "SUN";    for (char i = '0'; i<='9'; i++) arr2[i] = i-'0';    int j = 10;    for (char i = 'A'; i<='N'; i++){        arr2[i] = j;        j++;    }    return;}int main(){           begin();    cin >> a >> b >> c >> d;    int l = strlen(a);    for (int i = 0; i<l; i++){        if (key1 && isupper(a[i]) && a[i] == b[i] && a[i]>='A' && a[i]<='G'){            day = a[i];            key1 = 0;            key2 = 1;            continue;        }        if (key2 && a[i] == b[i] &&(a[i]>='0' && a[i]<='9' || a[i]>='A' && a[i]<='N')){                hour = arr2[a[i]];                key2 = 0;        }        if (!key1 && !key2) break;    }    l = strlen(c);    for (int i = 0; i<l; i++){        if (isalpha(c[i]) && c[i] == d[i]){            mymin = i;            break;        }           }    cout << arr1[day] << ' ';    printf("%02d:%02d\n", hour, mymin);    return 0;}               
原创粉丝点击