首页 > 代码库 > nyoj 915 +-字符串(贪心)
nyoj 915 +-字符串(贪心)
+-字符串
时间限制:1000 ms | 内存限制:65535 KB
难度:1
- 描述
- Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交换。他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串。你现在要去帮助他完成那个这个问题。
- 输入
- 多组测试数据
每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。 - 输出
- 仅一个整数,输出最少需要操作的次数。如果答案不存在,输出-1。
- 样例输入
++-+--+ -++--++
- 样例输出
4
- 来源
- NBOJ
- 上传者
TC_周亿
题意:就是找到上下对应的字符不相等的,然后就是将其对后面的遍历,然后找到能够对应替换的字符,求出将所有第一个与第二个串中不同的字符转移成第二个,需要的最少操作的次数。
难点:对题意的正确理解!
代码如下:
#include<stdio.h> #include<string.h> char a[5050],b[5050]; int main() { while(~scanf("%s%s",a,b)) { int sum=0; int i,j; int len=strlen(a); for(i=0;i<len;i++) { if(a[i]!=b[i]) { for(j=i+1;j<len;++j) { if(a[j]==b[i]) { a[j]=a[i];//here is a trap,you need to change the key you find to the right type break; } } sum+=j-i; } } printf("%d\n",sum); } return 0; }
nyoj 915 +-字符串(贪心)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。