好难的题,萌新调了一整天(真的,码字的时候都11点半了)
总结下坑点(会放码的,别急):
1.正常打模拟结构,可以拿10pt。
2.rt,重复空格的处理,写好了到12pt。
3.作者在测试里无意自己打了头尾空格出问题,意识到有坑在首尾的空格。(其实第二个测试点就在卡尾巴的空格,即(文本)(空格)(句号),不处理会多一个0),拿到14pt。
4.最最最坑的一点(第1个测试点)一直打句号,要求不能输出。(笔者误以为是文本里面有换行符,改了半天,发现测试点一没有一点动静QaQ)
//其实就是c语言的码啦,没找到分类orz
#include <stdio.h>
int i,ans,flag;
char c[10010];
int main()
{
//轻松输入,不解释
while(1)
{
i++;
scanf("%c",&c[i]);
if(c[i]=='.') break;
}
int Len_c = i;
//最后的希望,全是.但不输出
for(i=1;i<=Len_c;i++){
if(c[i]!='.') flag=1;
}
if(flag==0) return 0;
//检测头尾空格,并标记,进14pt
i=1;
while(c[i]==' '){
c[i]='#';
i++;
}
i=Len_c-1;
while(c[i]==' '){
c[i]='#';
i--;
}
//12pt码,基本框架,可以过重复空格
for(i=1;i<=Len_c;i++){
if(c[i]=='#'){
continue;
}
if(c[i]=='.'){
printf("%d",ans);
break;
}
if(c[i]==' '){
if(c[i-1]==' ') continue;
else{
printf("%d ",ans);
ans=0;
}
}
else{
ans++;
}
}
}
嘿嘿,收工!
求赞,谢谢!