1014. 福尔摩斯的约会 (20):阅读能力也需要提高···

来源:互联网 发布:sql创建用户并授权 编辑:程序博客网 时间:2024/06/07 00:57
#include<iostream>#include<map>#include<string>#include<ctype.h>//isalpha()#include<iomanip>using namespace std;#define Size 60int main(){        string S1, S2, S3, S4;        string Day;        int H, M;        map<char, string>M1;        map<char,int>M2;        M1['A'] = "MON"; M1['B'] = "TUE"; M1['C'] = "WED";        M1['D'] = "THU";  M1['E'] = "FRI";  M1['F'] = "SAT";   M1['G'] = "SUN";        for( int i=0; i<10; i++ )            M2[i+'0'] = i;        for( int i=10; i<24; i++ )            M2[i-10+'A'] = i;         cin>>S1>>S2>>S3>>S4;         bool FindDay = false;//标记是否找到第一对相等 即确定 Day         bool FindH = false;// 标记 是否找到 第二对 相同 即确定 HH         int i;        for(  i=0; i<S1.length(); i++ )        {                if( FindDay )// HH 一定是在 Day后找到                 {                        if( ( char( S1[i] ) >='A' && char( S1[i] ) <= 'N'|| S1[i]>='0'&& S1[i]<='9' ) && S1[i] == S2[i] )                        {                            H = M2[char(S1[i])];                            //cout<<S1[i]<<" "<<H<<endl;                            FindH = true;                        }                }                else if( ( char( S1[i] ) >='A' && char( S1[i] )<='G' ) && S1[i] == S2[i] )                          {                                    Day = M1[char(S1[i])];                                    //cout<<S1[i]<<" "<<Day<<endl;                                    FindDay = true;                          }                if( FindDay && FindH )// 省去不必要的循环                     break;        }        for( i=0; i<S3.length(); i++ )            if( isalpha(char(S3[i])) && S3[i]==S4[i] )            {                    M = i;                    break;            }        cout<<Day<<" "<<H/10<<H%10                <<":"<<M/10<<M%10<<endl;    return 0;}

一开始调了好久只有第一个测试点能过···抓狂···

后来明白 “对相同” 是字符串位置上对应相等 ···

明白过后 改改就A了···

思路还是蛮清晰的···

0 0