你弟弟刚刚学会写英语的一(one)、二(two)和三(three)。他在纸上写了好些一二三,可惜有些字母写错了。已知每个单词最多有一个字母写错了(单词长度肯定不会错),你能认出他写的啥吗?
第一行为单词的个数(不超过10)。以下每行为一个单词,单词长度正确,且最多有一个字母写错。所有字母都是小写的。
对于每组测试数据,输出一行,即该单词的阿拉伯数字。输入保证只有一种理解方式。
3
owe
too
theee
1
2
3
分析:一道很简单的题,由于保证单词长度不错,所以先判断输入长度是否为5来判断是否为three,若长度为3,则又因为保证输入只有一种理解方式且至多有一个字母写错,因此分别用输入和one、two作比较,相应位置上仅有一处不同的即为输入单词的正确表达。
AC代码:
#include <cstdio> #include <string.h> int main() { #ifdef LOCAL freopen("data.in","r",stdin); freopen("data.out","w",stdout); #endif char s1[5]="one"; char s2[5]="two"; char s[7]; int t; scanf("%d",&t); for(int i=0;i<t;i++) { scanf("%s",s); if(strlen(s)==5) printf("%d\n",3); else { int x1=0,x2=0; for(int j=0;j<3;j++) { if(s1[j]==s[j]) x1++; if(s2[j]==s[j]) x2++; } if(x1>x2) printf("%d\n",1); else printf("%d\n",2); } } return 0; }