题目链接~~>
一看分类就知道这一题是一个简单题,但是开始没注意单个字符输入时要吸收换行!!!!
代码(代码有点乱):
#include<stdio.h> struct zhang { char c1,c2,c3 ; }t1[105] ; struct node { char b1,b2 ; }t2[105] ; char s[105],s1[105] ; int main() { int T,n,m,sm,q=1; char ss[10]="QWERASDF" ; scanf("%d",&T) ; while(T--) { scanf("%d",&n) ; int i,j,k ; for(i=0;i<n;i++) { getchar() ;//勿忘!!! scanf("%c%c%c",&t1[i].c1,&t1[i].c2,&t1[i].c3) ; } scanf("%d",&m) ; for(i=0;i<m;i++) { getchar() ;//勿忘!!! scanf("%c%c",&t2[i].b1,&t2[i].b2) ; } scanf("%d",&sm) ; scanf("%s",s) ; int r=0 ; for(k=0;k<sm;k++) { int f=0,p=0 ; if(!r) { for(int yy=0;yy<8;yy++) if(ss[yy]==s[k]) { s1[r++]=s[k] ; } continue ; } for(i=0;i<n;i++) if((s[k]==t1[i].c1&&s1[r-1]==t1[i].c2)||(s1[r-1]==t1[i].c1&&s[k]==t1[i].c2)) { s1[r-1]=t1[i].c3 ; f=1 ; } if(!f) { p=0 ; for(i=0;i<m;i++) if(s[k]==t2[i].b1) { for(j=r-1;j>=0;j--) if(s1[j]==t2[i].b2) { r=0 ; p=1 ; break ; } if(p) break ; } else if(s[k]==t2[i].b2) { for(j=r-1;j>=0;j--) if(s1[j]==t2[i].b1) { r=0 ; p=1 ; break ; } if(p) { break ; } } } if(!p&&!f) { for(int yy=0;yy<8;yy++) if(ss[yy]==s[k]) { s1[r++]=s[k] ; } } } printf("Case #%d: [",q++) ; for(i=0;i<r;i++) if(!i) printf("%c",s1[i]) ; else printf(", %c",s1[i]) ; printf("]\n") ; } return 0 ; }