http://acm.nyist.net/JudgeOnline/problem.php?pid=915

+-字符串

时间限制:1000 ms  |  内存限制:65535 KB
难度:1

描述
Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交换。他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串。你现在要去帮助他完成那个这个问题。
输入
多组测试数据

每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。

输出
仅一个整数,输出最少需要操作的次数。如果答案不存在,输出-1。
样例输入
++-+--+  
-++--++ 
样例输出
4

解题思路:贪心,找到当前不同的和离当前最近的不同点,交换即可

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 char str1[5050], str2[5050];
 5 
 6 int main(){
 7     int len, i, j, sum, p1, p2;
 8     while(scanf("%s %s", str1, str2) != EOF){
 9         len = strlen(str1);
10         p1 = p2 = sum = 0;
11         for(i = 0; i < len; i++){
12             if(str1[i] == '+'){
13                 p1++;
14             }
15             if(str2[i] == '+'){
16                 p2++;
17             }
18         }
19         if(p1 != p2){
20             printf("-1\n");
21             continue;
22         }
23         for(i = 0; i < len; i++){
24             if(str1[i] != str2[i]){
25                 for(j = i + 1; j < len; j++){
26                     if(str1[j] == str2[i]){
27                         sum += (j - i);
28                         break;
29                     }
30                 }
31                 str1[j] = str1[i];
32             }
33         }
34         printf("%d\n", sum);
35     }
36     return 0;

37 }

转载于:https://www.cnblogs.com/angle-qqs/p/4085019.html

nyoj-915—— +-字符串相关推荐

  1. NYOJ 915 +-字符串

    +-字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 Shiva得到了两个只有加号和减号的字符串,字串长度相同.Shiva一次可以把一个加号和它相邻的减号交换.他想 ...

  2. NYOJ 658 字符串右移

    字符串右移 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 LZQ最近迷上了字符串,于是他有一个问题想考你,聪明的你一定知道答案.问题如下:给你一个字符串,让你对其进行向 ...

  3. Nyist 915 +-字符串

    +-字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 Shiva得到了两个只有加号和减号的字符串,字串长度相同.Shiva一次可以把一个加号和它相邻的减号交换.他想 ...

  4. nyoj LYQの字符串(尺取法)

    LYQの字符串 题目描述 一个字符串如果其所有长度为奇数的子串都是回文串那么就称这个字符串是奇回文串. 给你一个长度为N的字符串,假如让你最多可以修改k个字符,你的目标是求出最长的奇回文子串.がんばっ ...

  5. NYOJ 266 字符串逆序输出

    字符串逆序输出 时间限制:3000 ms  |  内存限制:65535 KB 难度:0 描述 给定一行字符,逆序输出此行(空格.数字不输出) 输入 第一行是一个整数N(N<10)表示测试数据的组 ...

  6. NYOJ 回文字符串

    回文字符串 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当然, ...

  7. nyoj 685查找字符串

    查找字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 小明得到了一张写有奇怪字符串的纸,他想知道一些字符串出现了多少次,但这些字符串太多了,他想找你帮忙,你能帮他吗 ...

  8. NYOJ 37 回文字符串

    回文字符串 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当然, ...

  9. NYOJ 685 查找字符串(map)

    查找字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 小明得到了一张写有奇怪字符串的纸,他想知道一些字符串出现了多少次,但这些字符串太多了,他想找你帮忙,你能帮他吗 ...

最新文章

  1. 太牛逼了!项目中用了Disruptor之后,性能提升了2.5倍
  2. 样本不均衡SMOTE算法代码实列
  3. 【新无人机数据集】从 行人重识别 到 无人机目标定位
  4. R 笔记 prophet
  5. JS 加强篇!推荐 10 个好用的 TypeScript 的开源项目 YYDS !
  6. 链表中位数(Middle of the Linked List)
  7. mysql自定义函数重载_python pyMysql 自定义异常 函数重载
  8. JQuery.Ajax用法
  9. oracle 时间戳
  10. 微型计算机的现状历史未来,微型计算机的发展历史、现状和未来
  11. 进程以及状态 进程的创建
  12. paip.hadoop的应用研究总结
  13. Android平台上使用SDL官方demo播放视频(使用ffmpeg最新版解码)
  14. 查看计算机数字证书,数字证书认不到怎么办?
  15. 测试开发工程师必备软硬能力高级测试开发工程师需要具备什么能力?
  16. 企查查接口full的实现`
  17. Android App接入支付功能——支付宝支付
  18. MySQL(二)锁 ----- 表锁
  19. 双 JK 触发器 74LS112 逻辑功能。真值表_【第十章】触发器和事件
  20. 中科大计算机本科毕业论文范文,查找学位论文

热门文章

  1. Android 混淆打包
  2. 如何在NEO共识节点间分配任务
  3. MyEclipse中的web项目之前有个感叹号
  4. Win 8 自定义设置面版
  5. CSS美化上传按钮、checkbox和radio样式
  6. asp.net mvc5 设置Area下的为启动页
  7. Cmake的install与file命令的区别
  8. C语言笔记系列文章 索引目录表(持续更新中......)
  9. ubuntu下磁道坏区的检测与修复
  10. VC回调函数定义和使用