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 }

 

 

你可能感兴趣的:(auto)