首页 > 代码库 > CSU 1330: 字符识别?(字符串模拟啊 湖南省第九届大学生计算机程序设计竞赛)
CSU 1330: 字符识别?(字符串模拟啊 湖南省第九届大学生计算机程序设计竞赛)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1330
Description
你的任务是写一个程序进行字符识别。别担心,你只需要识别1, 2, 3,如下:
.*. *** ***
.*. ..* ..*
.*. *** ***
.*. *.. ..*
.*. *** ***
Input
输入仅包含一组数据,由6行组成。第一行为字符的个数n(1<=n<=10)。以下5行每行包含4n个字符。每个字符恰好占5行3列,然后是一个空列(用"."填充)。
Output
输出应包含一行,即识别出的各个字符。
Sample Input
3.*..***.***..*....*...*..*..***.***..*..*.....*..*..***.***.
Sample Output
123
HINT
Source
湖南省第九届大学生计算机程序设计竞赛
PS:
因为只需要判断123!所以观察一下他们的不同!
代码如下:
#include <cstdio> #include <cstring> int main() { int n; char s[7][77]; while(~scanf("%d",&n)) { int i, j; for(i = 0; i < 5; i++) { scanf("%s",s[i]); } int r = n; int c = 4*n; int a[100]; memset(a,0,sizeof(a)); int l = 0; for(j = 0; j < c;) { if(s[0][j]=='.'&&s[0][j+2]=='.'&&s[4][j]=='.'&&s[4][j+2]=='.') { a[l++] = 1; } if(s[0][j]=='*'&&s[0][j+1]=='*'&&s[0][j+2]=='*') { if(s[3][j]=='*') { a[l++] = 2; } } if(s[0][j]=='*'&&s[0][j+1]=='*'&&s[0][j+2]=='*') { if(s[3][j+2]=='*') { a[l++] = 3; } } j+=4; } for(i = 0; i < l; i++) { printf("%d",a[i]); } } return 0; } /* 6 .*..***.***..*..***.***. .*....*...*..*....*...*. .*..***.***..*..***.***. .*..*.....*..*..*.....*. .*..***.***..*..***.***. */
CSU 1330: 字符识别?(字符串模拟啊 湖南省第九届大学生计算机程序设计竞赛)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。