南阳oj 915 +-字符串
来源:互联网 发布:c语言测时间间隔 编辑:程序博客网 时间:2024/04/27 13:23
+-字符串
时间限制:1000 ms | 内存限制:65535 KB
难度:1
描述
Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交换。他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串。你现在要去帮助他完成那个这个问题。
输入
多组测试数据
每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。
输出
仅一个整数,输出最少需要操作的次数。如果答案不存在,输出-1。
样例输入
++-+--+ -++--++
样例输出
4
以下附上代码:
#include<stdio.h>#include<cstring>#include<iostream>#include<algorithm>#include<math.h>#include<stdlib.h>#include<stack>#include<vector>#include<string.h>#include<map>#define INF 0x3f3f3f3f3fusing namespace std;char a[5005],b[5005];int a1[5000],a2[5005];int cha(int a,int b){ if(a>b) return a-b; else return b-a;}int main(){ while(~scanf("%s%s",a,b)) { int ans=0,k1=0,k2=0; int l=strlen(a); for(int i=0; i<l; i++) { if(a[i]!=b[i]&&a[i]=='+') a1[k1++]=i; if(a[i]!=b[i]&&a[i]=='-') a2[k2++]=i; } if(k1!=k2) printf("-1\n"); else { for(int i=0; i<k1; i++) { ans+=cha(a1[i],a2[i]); } printf("%d\n",ans); } }}
0 0
- 南阳oj 915 +-字符串
- 南阳 oj NYoj 贪心 题目915 +-字符串
- 南阳oj 字符串替换
- 南阳oj 回文字符串
- 南阳oj 题目113 字符串替换
- 南阳 oj 动态规划 回文字符串
- 南阳 915 +-字符串
- 南阳915+-字符串
- 南阳题目915-+-字符串
- 南阳OJ
- 南阳oj
- 南阳oj
- 南阳OJ
- 南阳 OJ 217 a letter and a number (字符串处理)
- 南阳 OJ 204 (Coin Test)(字符串处理)
- nyoj 113 字符串替换<南阳oj 100道>
- 南阳oj 整数性质
- 复杂度 743 南阳oj
- 软工整体理解
- java基础
- OpenCV(1)
- Jbpm流程执行
- PAT-BL-1008
- 南阳oj 915 +-字符串
- Android RecyclerView工作原理分析(上)
- Java GC 源码分析(2)
- Okhttp-wiki 之 Interceptors 拦截器
- 初始化与清理之二(清理)
- 2016 ccpc HDU 5968 异或密码
- 【玲珑学院 1046 - chess play】
- 中位数和顺序统计量---算法导论学习笔记
- php时间格式