简单字符串处理 hdu1062 Text Reverse

虽然这个题目一遍AC,但是心里还是忍不住骂了句shit!

花了一个小时,这个题目已经水到一定程度了,但是我却在反转这个操作上含糊不清,并且还是在采用了辅助数组的情况下,关系的理顺都如此之难。

其实我是想到了之前那次保研考试,让给数组里面的数换k位,我也是纠结好久没有写出个所以然,郁闷。

简单字符串处理 hdu1062 Text Reverse
 1 #include<stdio.h>

 2 #include<string.h>

 3 #include<stdlib.h>

 4 char ans[1002];

 5 char temp[1002];

 6 

 7 void divide(char a[],int n)

 8 {

 9     int cur=0,j=0,pricur=0;

10     for(int i=0;i<n;i++)

11     {

12         if(a[i]==' ')

13         {

14             int L=cur-pricur;

15             for(int x=0;x<L;x++)

16             {

17                 temp[x+pricur]=a[L-1-x+pricur];

18             }

19             for(int x=pricur;x<cur;x++)

20             {

21                 a[x]=temp[x];

22             }

23             cur++;

24             pricur=cur;

25         }

26         else

27         {

28             cur++;

29         }

30     }

31     int L=n-pricur;

32     for(int x=0;x<L;x++)

33     {

34         temp[x+pricur]=a[L-1-x+pricur];

35     }

36     for(int x=pricur;x<n;x++)

37     {

38         a[x]=temp[x];

39     }

40 }

41 

42 int main()

43 {

44     int T,i;

45     scanf("%d",&T);

46     getchar();

47     while(T--)

48     {

49         gets(ans);

50         divide(ans,strlen(ans));

51         puts(ans);

52     }

53 

54     return 0;

55 }
hdu 1062 Text Reverse

找规律什么的还有待改进,这速度有点慢。。

你可能感兴趣的:(字符串处理)