1014. 福尔摩斯的约会 (20):阅读能力也需要提高···
2015-06-25 15:44
423 查看
#include<iostream> #include<map> #include<string> #include<ctype.h>//isalpha() #include<iomanip> using namespace std; #define Size 60 int 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了···
思路还是蛮清晰的···
相关文章推荐
- android http
- Android CursorAdapter
- test
- dreamweaver 8的替换功能
- Xamarin.VisualStudio安装后导致VS2013打不开MVC的视图文件cshtml
- OCP-1Z0-051-2015-19题
- HTML5页面在安卓手机端分页显示数据
- HttpModule与HttpHandler详解
- Linux vim查找与替换操作及快捷键
- leetcode-19Remove Nth Node From End of List
- Android Studio SVN的安装与使用
- linux下的c/c++调试器gdb
- Chord算法(原理)
- 管理软件最新版本
- yii框架AR详解
- JS学习笔记之左边列表移到到右边列表
- 自行颁发不受浏览器信任的SSL证书
- Nmap扫描教程之DNS服务类
- cocos2dx 自动添加所有cpp文件到android.mk
- Unique Paths 算法详解