貪心演算法之+-字串
思路:兩個字串第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;
}