OUC_Summer Training_ DIV2_#4之数据结构
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=26100#problem/A
1 //是很简单的题啦 但是我数组开的有点小 总是runtime error 2 #include<stdio.h> 3 #include<string.h> 4 char a[100010]; 5 char b[100010]; 6 int main() 7 { 8 int i,j,na,nb,t = 0,m = 0; 9 char c; 10 while(scanf("%s",a) != EOF) 11 { 12 scanf("%s",b); 13 na = strlen(a); 14 nb = strlen(b); 15 for(i = 0;i < na;i++) 16 { 17 for(j = t;j < nb;j++) 18 { 19 if(a[i] == b[j]) 20 { 21 m++; 22 t = j + 1; 23 break; 24 } 25 } 26 } 27 if(m == na )printf("Yes\n"); 28 else printf("No\n"); 29 m = 0; 30 t = 0; 31 } 32 return 0; 33 }
1 //先把括号的情况还原,在用递归的方法给括号配对,递归不是很熟练,虽然很简单,写了好几遍才对。 2 #include<stdio.h> 3 char y[10000]; 4 int w[50],n,l,j; 5 int f() 6 { 7 int s=1; 8 while(1) 9 if(y[j]=='(') 10 { 11 j++; 12 s+=f(); 13 } 14 else 15 { 16 w[l++]=s; 17 j++; 18 return s; 19 } 20 } 21 int main() 22 { 23 int N,i,k,m; 24 scanf("%d",&N); 25 while(N--) 26 { 27 scanf("%d",&n); 28 for(i=0,l=0,k=0;i<n;i++) 29 { 30 scanf("%d",&m); 31 for(j=0;j<m-k;j++) 32 y[l++]='('; 33 y[l++]=')'; 34 k=m; 35 } 36 l=j=0; 37 f(); 38 for(i=0;i<n;i++) 39 printf("%d ",w[i]); 40 printf("\n"); 41 } 42 return 0; 43 }