#include <stdio.h>
#include <string.h>
int main()
{
char a[5005],b[5005];
int x,y;
while(scanf("%s%s",a,b)!=EOF)
{
x=strlen(a);
y=strlen(b);
if(x!=y)
{
printf("-1\n");
continue;
}
int i,j,sum=0;
int c=0,d=0;
for(i=0;i<x;i++)
{
if(a[i]=='+')
{
c++;
}
if(b[i]=='+')
{
d++;
}
}
if(c!=d)
{
printf("-1\n");
break;
}
for(i=0;i<x;i++)
{
if(a[i]!=b[i])
{
for(j=i+1;j<x;j++)
{
sum++;//sum每加一次,代表換了一個位置
if(a[j]==b[i])
{
a[j]=a[i];//形象的體現a[j]與a[i]互換了位置 因爲是一個一個從前往後比較 所以只需將後面的這個值更改一下即可
break;
}
}
}
}
printf("%d\n",sum);
}
return 0;
}
這題歸爲了貪心算法類,我現在還不明白這個解決方法跟貪心算法有什麼關係 誰若懂得 教教我吧
nyoj915 +-字符串
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.