-
[1103] 一二三
- 时间限制: 1000 ms 内存限制: 65535 K
- 问题描述
-
你弟弟刚刚学会写英语的一(one)、二(two)和三(three)。他在纸上写了好些一二三,可惜有些字母写错了。已知每个单词最多有一个字母写错了(单词长度肯定不会错),你能认出他写的啥吗?
- 输入
-
第一行为单词的个数(不超过10)。以下每行为一个单词,单词长度正确,且最多有一个字母写错。所有字母都是小写的。
- 输出
-
对于每组测试数据,输出一行,即该单词的阿拉伯数字。输入保证只有一种理解方式。
- 样例输入
-
3 owe too theee
- 样例输出
-
1 2 3
- 提示
-
无
- 来源
-
The Seventh Hunan Collegiate Programming Contest
-
水题一道,开始直接用的暴力搜索过的,后来改进了一下方法,直接水过
-
#include <cstdio> #include <cstring> using namespace std; int main() { int t; char s[10]; scanf("%d",&t); while(t--) { scanf("%s",s); if(((s[0]>='a'&&s[0]<='z') && s[1]=='n' && s[2]=='e') ||(s[0]=='o' && (s[1]>='a'&&s[1]<='z') && s[2]=='e') ||(s[0]=='o' && s[1]=='n' && (s[2]>='a'&&s[2]<='z'))) printf("1\n"); else if(((s[0]>='a'&&s[0]<='z') && s[1]=='w' && s[2]=='o') ||(s[0]=='t' && (s[1]>='a'&&s[1]<='z') && s[2]=='o') ||(s[0]=='t' && s[1]=='w' && (s[2]>='a'&&s[2]<='z'))) printf("2\n"); else if(((s[0]>='a'&&s[0]<='z') && s[1]=='h' && s[2]=='r' && s[3]=='e' &&s[4]=='e') ||(s[0]=='t' && (s[1]>='a'&&s[1]<='z') && s[2]=='r' && s[3]=='e' &&s[4]=='e') ||(s[0]=='t' && s[1]=='h' && (s[2]>='a'&&s[2]<='z') && s[3]=='e' &&s[4]=='e') ||(s[0]=='t' && s[1]=='h' && s[2]=='r' && (s[3]>='a'&&s[3]<='z') &&s[4]=='e') ||(s[0]=='t' && s[1]=='h' && s[2]=='r' && s[3]=='e' &&(s[4]>='a'&&s[4]<='z'))) printf("3\n"); } return 0; }
#include <iostream> #include <cstring> using namespace std; int main() { int t; char s[6]; cin>>t; while(t--) { cin>>s; if(strlen(s)==5)//利用长度的特点 cout<<"3\n"; else if(s[2]=='o'&&s[0]!='o') cout<<"2\n"; else if(s[2]!='o'&&s[0]=='t') cout<<"2\n"; else cout<<"1\n"; } return 0; }
The Seventh Hunan Collegiate Programming Contest 一二三
最新推荐文章于 2021-07-02 12:34:16 发布