首页 > 代码库 > 爱改名的小融(三部曲)

爱改名的小融(三部曲)

时间限制: 1 s 空间限制: 16000 KB 题目等级 : 白银 Silver

题目描述 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 }

时间限制: 2 s 空间限制: 128000 KB 题目等级 : 黄金 Gold

题目描述 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了。

时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold

题目描述 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]

爱改名的小融(三部曲)