敲笨钟--来自LH的题 已通过
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int n;
char a[105];
char answer[21][105];
int pt[21]; //读取逗号的位置
int cnt[21][105]; //读取空格的位置
int tot[21]; //cnt数组的下标
int len; //字符串长度
int judge[20]; //判断是否输出Skipped
memset(judge,0,sizeof(judge));
memset(cnt,0,sizeof(cnt));
memset(tot,0,sizeof(tot));
memset(pt,0,sizeof(pt));
cin>>n;
for(int i=1;i<=n;i++)
{
getchar();
cin.get(a,105);
len=strlen(a);
for(int j=0;j<=len-1;j++)
{
if(a[j]==',') pt[i]=j;
if(a[j]==' ') cnt[i][++tot[i]]=j;
}
if(a[len-2]=='g'&&a[len-3]=='n'
&&a[len-4]=='o'&&a[pt[i]-1]=='g'&&
a[pt[i]-2]=='n'&&a[pt[i]-3]=='o'){
for(int j=0;j<=cnt[i][tot[i]-2];j++){answer[i][j]=a[j];}
}
else judge[i]++;
}
for(int i=1;i<=n;i++)
{
if(!judge[i]){
for(int j=0;j<=cnt[i][tot[i]-2];j++)
{
cout<<answer[i][j];
}
cout<<"qiao ben zhong."<<endl;
}
else cout<<"Skipped"<<endl;
}
return 0;
}
要注意的是,结尾处有英文的句号".",所以对len进行计数时需要多减一个1,其次第一次敲的时候看错题了,要押韵,所以还要建立pt数组来记录逗号","的位置,其他便是很正常的模拟,要注意把标记的数组初始值清零。
浙公网安备 33010602011771号