题目描述:你弟弟刚刚学会写英语的一(one)、二(two)和三(three)。他在纸上写了好些一二三,可惜有些字母写错了。已知每个单词最多有一个字母写错了(单词长度肯定不会错),你能认出他写的啥吗?
输入输出要求:
输入
第一行为单词的个数(不超过10)。以下每行为一个单词,单词长度正确,且最多有一个字母写错。所有字母都是小写的。
输出
对于每组测试数据,输出一行,即该单词的阿拉伯数字。输入保证只有一种理解方式。
输入输出样例:
样例输入 |
3 owe too theee |
样例输出 |
1 2 3 |
解题思路:用一个字符数组储存输入,如果字符数组长度为5,那么输出肯定是3。当长度为3时分类讨论,如果3个字母中有2个是one中的字母,那么输出肯定是1。其他情况输出2。
代码:
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
char str[10];
int main()
{
int T;
cin>>T;
while(T--)
{
cin>>str;
if(strlen(str)==5)
cout<<3<<endl;
else
{
if((str[0]=='o'&&str[1]=='n')||(str[1]=='n'&&str[2]=='e')||(str[0]=='o'&&str[2]=='e'))
cout<<1<<endl;
else
cout<<2<<endl;
}
memset(str,'\0',sizeof(str));
}
return 0;
}
解题感想:简单水题一枚