nyoj-915-+-字符串
来源:互联网 发布:淘宝主图尺寸怎么调整 编辑:程序博客网 时间:2024/06/08 11:31
+-字符串
时间限制:1000 ms | 内存限制:65535 KB
难度:1
描述
Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交换。他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串。你现在要去帮助他完成那个这个问题。
输入
多组测试数据
每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。
输出
仅一个整数,输出最少需要操作的次数。如果答案不存在,输出-1。
样例输入
++-+--+ -++--++
样例输出
4
分析:
已加号为例,改动加号的位置,来使字符串同,
记录下每个加然后相减取绝对值就得出这个加号移动的步数,最后求和就可以了。
代码:
#include<iostream>#include<cstdio>#include<cmath>#include<cstring>using namespace std;int main(){ char a[5010],b[5010]; int aa[5010],bb[5010];//记录+的位置 while(~scanf("%s%s",a,b)) { int la=strlen(a),ta=0; for(int i=0;i<la;i++) { if(a[i]=='+') { aa[ta++]=i; } } int lb=strlen(b),tb=0; for(int i=0;i<lb;i++) { if(b[i]=='+') { bb[tb++]=i; } } if(lb!=la||ta!=tb) { printf("-1\n"); continue; } int ans=0; for(int i=0;i<ta;i++) { ans+=fabs(aa[i]-bb[i]); } printf("%d\n",ans); } return 0;}
阅读全文
0 0
- nyoj 915 +-字符串 【字符串】
- nyoj 915 +-字符串【字符串】
- nyoj-915-+-字符串
- NYOJ 915 +-字符串
- NYOJ 915 +-字符串
- NYOJ-915 +-字符串
- NYOJ 915 +-字符串
- NYOJ 915 +-字符串
- NYOJ 915 +-字符串【贪心】
- nyoj 915 +-字符串
- NYOJ 915 +-字符串
- NYOJ 题目915+-字符串
- nyoj-915-+-字符串
- NYOJ 915 +-字符串
- nyoj 915 + - 字符串 (递归)
- +-字符串 nyoj 915
- nyoj 915 +-字符串
- nyoj 915 +-字符串
- 原型式继承
- 廖雪峰的Git教程六-撤销修改
- Sky数
- Java反射获取成员方法
- 廖雪峰Git教程七-删除文件
- nyoj-915-+-字符串
- CRM WebUI快键键一览~
- php设计模式——工厂方法设计模式
- Netty初次使用
- 顺序统计量(Order Statistic)小结
- 寄生式继承
- 深度学习入门(一) 机器学习的定义与方法
- vue.js 2.0 关于ref--绑定dom对象并获取
- Python自学之高级语法特性