- 输入
- 多组测试数据
每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过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; }