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 }