简单字符串处理 hdu1062 Text Reverse

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

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

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

 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

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

posted on 2013-08-26 22:23  holyprince  阅读(361)  评论(0编辑  收藏  举报

导航