• +-字符串


    描述
    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;
    }


  • 相关阅读:
    【Go】http server 性能测试
    【go】基础
    【Git】gitcongfig 增删改查
    【go】sdk + idea-plugin 开发工具安装
    【Ibatis】总结各种使用技巧
    【nodejs】jade模板入门
    各语言技术列表
    【nodejs】 npm 注意事项
    PAT-l3-002堆栈
    统计相似字符串
  • 原文地址:https://www.cnblogs.com/NYNU-ACM/p/4237311.html
Copyright © 2020-2023  润新知