标签:
http://acm.nyist.net/JudgeOnline/problem.php?pid=915++-+--+ -++--++
4
1 #include<stdio.h>/*AC我自己没做出来,看得题解*/ 2 #include<string.h> 3 int find(char *p,int n) 4 { 5 int i,count=0; 6 for(i=0;i<n;i++) 7 { 8 if(*(p+i)==‘+‘) 9 count++; 10 } 11 return count; 12 } 13 int cha(int x,int y) 14 { 15 if(x>y) 16 return x-y; 17 return y-x; 18 } 19 int main() 20 { 21 char a[5005],b[5005]; 22 while(scanf("%s%s",a,b)==2) 23 { 24 int i,len,k=0,j,count=0; 25 len=strlen(a); 26 if((strlen(a)!=strlen(b))||find(a,strlen(a))!=find(b,strlen(b)))/*判断能否转换*/ 27 { 28 printf("-1\n"); 29 continue; 30 } 31 else/*找到a中第i个+位置w1和b第i个+位置w2,|w1-w2|即为移动位数*/ 32 { 33 for(i=0;i<strlen(a);i++) 34 { 35 if(a[i]!=‘+‘) 36 continue; 37 else 38 { 39 for(j=k;b[j]!=‘\0‘;j++) 40 { 41 if(b[j]==‘+‘) 42 { 43 count+=cha(i,j); 44 k=j+1; 45 break; 46 } 47 } 48 } 49 } 50 51 } 52 printf("%d\n",count); 53 } 54 }
标签:
原文地址:http://www.cnblogs.com/a1225234/p/4469692.html