码迷,mamicode.com
首页 > 其他好文 > 详细

+-字符串

时间:2014-12-04 21:42:42      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:style   io   ar   color   os   sp   for   on   数据   

描述
Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交换。他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串。你现在要去帮助他完成那个这个问题。
输入
多组测试数据

每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。
输出
仅一个整数,输出最少需要操作的次数。如果答案不存在,输出-1。
样例输入
++-+--+ 
-++--++ 

样例输出

4

//刚开始理解错误,,输入时保证字串a,b长度相同。。将a变为b,+和-交换最终始a,b一样,若不存在输出-1(则a中的+和b中的+数量一样)

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
	char a[5000],b[5000];
	while(cin>>a>>b)
	{
		int x=strlen(a);
	    int i,j,t=0;
		int flag1=0,flag2=0;
		for(i=0;i<x;i++)
		{
			if(a[i]=='+')
				flag1++;
			if(b[i]=='+')
				flag2++;	
		}
		if(flag1!=flag2)
		{
			cout<<"-1"<<endl;
			continue;
		}
	    for(i=0;i<x;i++)
		{
			if(a[i]!=b[i])
			{
				for(j=i+1;j<x;j++)
				{
					if(a[j]==b[i])
					{
						swap(a[i],a[j]);
						t+=(j-i);
				    	break;
					}
				}
			}
		}
		cout<<t<<endl;
	}
	return 0;
}


+-字符串

标签:style   io   ar   color   os   sp   for   on   数据   

原文地址:http://blog.csdn.net/phytn/article/details/41729599

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!