爱改名的小融(三部曲)

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

转载于:https://www.cnblogs.com/J-william/p/6383902.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值