UVA 10361 - Automatic Poetry(字符串)

题目链接

好郁闷的半下午+一晚上。。做了个本应用BFS的题,我用DFS写了130+,结果怎么都是超时。。。烦了。。。。刷个UVA,挺简单的题,防止没完没了的WA,做的还是挺谨慎的,感觉用的做法比较麻烦不知能否用scanf输入,无所谓了,还好1A。

 1 #include <stdio.h>
 2 #include <string.h>
 3 int main()
 4 {
 5     char p1[1000],p2[1000],o1[1000],o2[1000],k1[1000],k2[1000];
 6     int n,i,j,l1,l2,z,e;
 7     scanf("%d%*c",&n);
 8     while(n--)
 9     {
10         z = 1;
11         gets(p1);
12         gets(p2);
13         l1 = strlen(p1);
14         l2 = strlen(p2);
15         for(i = 0;i < l1;i ++)
16         {
17             if(p1[i] != '<' && p1[i] !='>')
18             printf("%c",p1[i]);
19             else
20             {
21                 if(p1[i] == '<'&&z==1)
22                 {
23                     for(j = i+1;p1[j] !='>';j ++)
24                     o1[j-i-1] = p1[j];
25                     for(e = j+1;p1[e] !='<';e ++)
26                     k1[e-j-1] = p1[e];
27                     k1[e-j-1] = '\0';
28                     o1[j-i-1] = '\0';
29                     z++;
30                 }
31                 else if(p1[i] == '<' &&z==2)
32                 {
33                     for(j = i+1;p1[j] !='>';j ++)
34                     o2[j-i-1] = p1[j];
35                     for(e = j+1;p1[e] !='\0'&&p1[e] != ' ';e ++)
36                     k2[e-j-1] = p1[e];
37                     k2[e-j-1] = '\0';
38                     o2[j-i-1] = '\0';
39                 }
40             }
41         }
42         printf("\n");
43         for(i = 0;i < l2;i ++)
44         {
45             if(p2[i]=='.'&&p2[i+1]=='.'&&p2[i+2]=='.')
46             {
47                 printf("%s%s%s%s",o2,k1,o1,k2);
48                 i += 2;
49             }
50             else
51             printf("%c",p2[i]);
52         }
53         printf("\n");
54     }
55     return 0;
56 }

 

 

posted @ 2012-06-01 21:31  Naix_x  阅读(301)  评论(0编辑  收藏  举报