虽然这个题目一遍AC,但是心里还是忍不住骂了句shit!
花了一个小时,这个题目已经水到一定程度了,但是我却在反转这个操作上含糊不清,并且还是在采用了辅助数组的情况下,关系的理顺都如此之难。
其实我是想到了之前那次保研考试,让给数组里面的数换k位,我也是纠结好久没有写出个所以然,郁闷。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char ans[];
char temp[]; void divide(char a[],int n)
{
int cur=,j=,pricur=;
for(int i=;i<n;i++)
{
if(a[i]==' ')
{
int L=cur-pricur;
for(int x=;x<L;x++)
{
temp[x+pricur]=a[L--x+pricur];
}
for(int x=pricur;x<cur;x++)
{
a[x]=temp[x];
}
cur++;
pricur=cur;
}
else
{
cur++;
}
}
int L=n-pricur;
for(int x=;x<L;x++)
{
temp[x+pricur]=a[L--x+pricur];
}
for(int x=pricur;x<n;x++)
{
a[x]=temp[x];
}
} int main()
{
int T,i;
scanf("%d",&T);
getchar();
while(T--)
{
gets(ans);
divide(ans,strlen(ans));
puts(ans);
} return ;
}
hdu 1062 Text Reverse
找规律什么的还有待改进,这速度有点慢。。