题目描述
TDOG星球分为 nn 个独立的王国。在 William 和 John 开始游戏之前,他们需要按游戏规则确定各自统治哪些王国。
王国统治权的分配规则如下:
- 名称最后一个字母为元音字母的王国归 William 统治。
- 名称最后一个字母为辅音字母的王国归 John 统治。
- 特殊的,名称最后一个字母为
y
或Y
的王国无人统治,不属于任何一方。
已知每个王国的名称,请你帮他们确定每个王国应该归谁统治。
输入格式
第一行一个整数 nn 表示TDOG星球上的王国数量。
接下来的 nn 行,每行是一个由英文字母组成的字符串,第 ii 行对应 ii 号王国的名称 SiSi。
输出格式
输出共 nn 行,第 ii 行对应 ii 号王国的统治者。
归属于 William 的王国输出 William
;
归属于 John 的王国输出 John
;
无人统治的王国输出 No
。
测试样例
输入样例 #1
3
Mollaristan
Auritania
Zizily
输出样例 #1
John
William
No
样例解释
样例一说明
Mollaristan 王国名称最后一个字母 n
是辅音字母。归 John 统治。
Auritania 王国名称最后一个字母 a
是元音字母。归 William 统治。
Zizily 王国名称最后一个字母 y
属于游戏规则中的特殊情况,无人统治。
数据范围
对于 20%20% 的数据,所有王国名称均只由一个字符组成。
对于 100%100% 的数据,有 1≤n≤1001≤n≤100。数据保证任一王国名称长度在 1∼1001∼100 范围内,且不存在除大小写字母以外的字符。
提示说明
元音字母有 A、E、I、O、U、a、e、i、o、u 。其余为辅音字母
代码如下:
#include<iostream>
using namespace std;
int n,b[10005];
string a;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
if(*a.rbegin()=='a'||*a.rbegin()=='e'||*a.rbegin()=='i'||*a.rbegin()=='o'||*a.rbegin()=='u'||*a.rbegin()=='A'||*a.rbegin()=='E'||*a.rbegin()=='I'||*a.rbegin()=='O'||*a.rbegin()=='U'){
b[i]=1;
}else if(*a.rbegin()=='y'||*a.rbegin()=='Y'){
b[i]=3;
}else{
b[i]=2;
}
}
for(int i=1;i<=n;i++){
if(b[i]==1){
cout<<"William"<<endl;
}else if(b[i]==2){
cout<<"John"<<endl;
}else if(b[i]==3){
cout<<"No"<<endl;
}
}
return 0;
}
求点赞!