nyoj915 +-字符串

#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;		
}
這題歸爲了貪心算法類,我現在還不明白這個解決方法跟貪心算法有什麼關係 誰若懂得 教教我吧
發佈了41 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章