原始题目
1330: 字符识别?
- Time Limit: 1 Sec
- Memory Limit: 128 Mb
- Submitted: 885
- Solved: 595
Description
你的任务是写一个程序进行字符识别。别担心,你只需要识别1, 2, 3,如下:
.*. *** ***
.*. ..* ..*
.*. *** ***
.*. *.. ..*
.*. *** ***
输入仅包含一组数据,由\(6\)行组成。第一行为字符的个数 \(n ( 1 \le n \le 10)\)。以下\(5\)行每行包含\(4n\)个字符。每个字符恰好占\(5\)行\(3\)列,然后是一个空列(用"."填充)。
Output
输出应包含一行,即识别出的各个字符。
3
.*..***.***.
.*....*...*.
.*..***.***.
.*..*.....*.
.*..***.***.
Sample Output
123
Hint
Source
湖南省第九届大学生计算机程序设计竞赛
题目大意
将一个五行宽的字符串替换成所代表的1,2,3。
解题思路
水题,字符串判断一下特征字符区间即可。
解题代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| #include <cstdio> #include <cstring> #include <cmath> #include <set> #include <queue> #include <map> #include <set> #include <string> #include <iostream> #include <iomanip> #include <stack> #define rep(i,a,n) for(int i=a ; i<n;++i) #define per(i,a,n) for(int i=n-1;i>=a;--i) #define fi first #define se second #define cl(x,a) memset(x,a,sizeof(x)) #define all(x) x.begin(),x.end() #define insert(x) x,x.begin() #define debug printf("======================\n"); #define mp make_pair #define np next_permutation #define pb push_back #define INF 0x3f3f3f3f #define eps 1e-8 using namespace std; const int maxn=1e5+5; const int maxm=1e5+5; const int maxl=2; const int K=32; string word[5]; int main(){ ios::sync_with_stdio(false); int n; while(cin>>n){ rep(i,0,5) cin>>word[i]; rep(i,0,n){ int ii=i*4; if(word[2][ii]=='.' && word[2][ii+1]=='*' && word[2][ii+2]=='.') cout<<1; else if(word[3][ii]=='*' && word[3][ii+1]=='.' && word[3][ii+2]=='.') cout<<2; else if(word[3][ii]=='.' && word[3][ii+1]=='.' && word[3][ii+2]=='*') cout<<3; } cout<<endl; } }
|
收获与反思
无