思路:两个字符串第i个‘-’的距离 (i从1到字符串的‘-’的个数),然后加和即可。(思路还是说不出来,看代码)
#include <stdio.h>
#include <string.h>
int main()
{ int i;
char a[5005],b[5005];
while(scanf("%s\n",a)&&scanf("%s",b)!=EOF)
{ int k=-1,h=-1,sum=0;
int len=strlen(a);
int flag1=0,flag2=0;
for(i=0;i<len;i++)
{
if(a[i]=='-')
flag1++;
if(b[i]=='-')
flag2++;
}
if(flag1==flag2)
{ while(flag1--)
{for(i=k+1;i<len;i++)
if(a[i]=='-')
{
k=i; break;
}
for(i=h+1;i<len;i++)
if(b[i]=='-')
{
h=i;break;
}
if(h>k)
sum+=(h-k);
else sum+=(k-h);
}
printf("%d\n",sum);
}
else printf("-1\n");
}
return 0;
}