#include <stdio.h>
char a[500001];
char *p;
int i;
int m=0;
int flag=0;
int num=0;
int main()
{
for(i=0;i<500001;i++){ //此处i<500000就会在最后一个测试点报错
scanf("%c",&a[i]);
if(a[i]=='\n'){
m=i;
a[i]='\0';
break;
}//从a[0]到a[i-1]共有i个字符
}
for(i=m-1;i>=0;i--){
if(a[i]!=' '&&a[i-1]!=' '&&i!=0){
num++;
}else if(a[i]!=' '&&a[i-1]==' '){
num++;
flag++;
p=&a[i];
}else if(a[i]!=' '&&i==0){
num++;
flag++;
p=&a[i];
}
if(flag==1&&num!=0){
for(;num>0;num--){
printf("%c",*p);
p++;
}
num=0;
flag++;//防止重复判断flag==1的情况
}else if(flag>1&&num!=0){
if(a[i-1]==' '||i==0){
printf(" ");
for(;num>0;num--){
printf("%c",*p);
p++;
}
num=0;
}
}
}
return 0;
}
5-32 说反话-加强版 (20分)
最新推荐文章于 2024-03-05 21:14:06 发布