爱改名的小融(三部曲)

Posted 鄉勇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爱改名的小融(三部曲)相关的知识,希望对你有一定的参考价值。

题目描述 Description

Wikioi上有个人叫小融,他喜欢改名。

他的名字都是英文,只要按顺序出现R,K,Y三个字母,就是他的名字。

给你N个名字,请你一一判断是不是小融。

输入描述 Input Description

N

N行,名字(全大写)

输出描述 Output Description

N行,每行YES或NO(大写)

样例输入 Sample Input

3

RKY

RAINKY

RINKEMENT

样例输出 Sample Output

YES

YES

NO

数据范围及提示 Data Size & Hint

N<=10,字符串长度<=50.

代码实现:

 1 #include<cstdio>
 2 #include<cstring>
 3 int n,l,i,j;
 4 char ch[60],name[]={\'R\',\'K\',\'Y\'};
 5 int main(){
 6     scanf("%d",&n);
 7     while(n--){
 8         scanf("%s",ch);
 9         for(i=j=0;ch[i]&&name[j];i++)
10         if(ch[i]==name[j]) j++;
11         if(j==3) printf("YES\\n");
12         else printf("NO\\n");
13     }
14     return 0;
15 }
题目描述 Description

Wikioi上有个人叫小融,他喜欢改名。
现在他的要求变了,只要是英文字母就是他的名字。
先给你N个名字,请你一一判断是不是小融。
本题还加强了测试数据

输入描述 Input Description

N
N行名字(全部为字符)

输出描述 Output Description

 N行,YES或NO(大写)

样例输入 Sample Input

3
&6*14315
Rinkement
micsloox

样例输出 Sample Output

NO

YES

YES

数据范围及提示 Data Size & Hint

对于40%的数据 N≤10 名字长度≤100
对于100%的数据 N≤50 名字长度≤100000

代码实现:

 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 int n,l;
 5 char ch[100010];
 6 bool p(int x){
 7     for(int i=0;i<l;i++)
 8     if(ch[i]<\'A\'||ch[i]>\'z\'||(ch[i]>\'Z\'&&ch[i]<\'a\')) return 0;
 9     return 1;
10 }
11 int main(){
12     scanf("%d",&n);
13     while(n--){
14         scanf("%s",ch);
15         l=strlen(ch);
16         if(p(l)) printf("YES\\n");
17         else printf("NO\\n");
18     }
19     return 0;
20 }

不知为何,本地不对(都没法调试),交上A了。

题目描述 Description

Wikioi上有个人叫小融,他喜欢改名。
现在他的要求变了,只要是英文字母就是他的名字。
先给你N个名字,请你输出正确名字的个数及编号。
本题还加强了测试数据

输入描述 Input Description

N
N行名字(全部为字符)

输出描述 Output Description

第一行:个数
第二行:编号

样例输入 Sample Input

3
&6*14315
Rinkement
micsloox

样例输出 Sample Output

2
2 3 

数据范围及提示 Data Size & Hint

对于40%的数据 N≤10 名字长度≤100
对于100%的数据 N≤50 名字长度≤100000

代码实现:

 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 int n,l,m,s[60];
 5 char ch[100010];
 6 bool p(int x){
 7     for(int i=0;i<l;i++) if(ch[i]<\'A\'||ch[i]>\'z\'||(ch[i]>\'Z\'&&ch[i]<\'a\')) return 0;
 8     return 1;
 9 }
10 int main(){
11     scanf("%d",&n);
12     for(int k=1;k<=n;k++){
13         scanf("%s",ch);
14         l=strlen(ch);
15         if(p(l)) s[m++]=k;
16     }
17     printf("%d\\n",m);
18     for(int i=0;i<m;i++) printf("%d ",s[i]);
19     return 0;
20 }

题目来源:CODE[VS]

以上是关于爱改名的小融(三部曲)的主要内容,如果未能解决你的问题,请参考以下文章

爱改名的小融1

codevs 3165 爱改名的小融2

爱改名的小融 2(codevs 3149)

AC日记——爱改名的小融 codevs 2967

AC日记——爱改名的小融2 codevs 3149

AC日记——爱改名的小融3 codevs 3156