+-字符串

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

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

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

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

思路:贪心,对比两个串,每次找到不一样的就在原串中搜索下一个与当前不一样的,然后交换。

AC代码:
 1 #include <stdio.h>
 2 #include <string.h>
 3 int main(void)
 4 {
 5     char string_change[5005],string_source[5005];
 6     while (~scanf("%s %s", string_source, string_change))
 7     {
 8         int plus_source, sub_source, plus_change, sub_change;
 9         plus_source = sub_source = plus_change = sub_change = 0;
10         int len_source = strlen(string_source), len_change =
11             strlen(string_change);
12         for (int i = 0; i < len_source; i++)
13         {
14             if (string_source[i] == '+')
15                 plus_source++;
16             else
17                 sub_source++;
18         }
19         for (int i = 0; i < len_change; i++)
20         {
21             if (string_change[i] == '+')
22                 plus_change++;
23             else
24                 sub_change++;
25         }
26         int count = 0;
27         if (plus_source == plus_change&&
28             sub_source == sub_change)
29         {
30             for (int i = 0; i < len_change; i++)
31             {
32                 if (string_source[i] != string_change[i])
33                 {
34                     for (int j = i + 1; j < len_change; j++)
35                     {
36                         if (string_change[i] != string_change[j])
37                         {
38                             count += (j - i);
39                             string_change[j] = string_change[i];
40                             break;
41                         }
42                     }
43                 }
44             }
45             printf("%d\n", count);
46         }
47         else
48             printf("-1\n");
49     }
50     return 0;
51 }

转载于:https://www.cnblogs.com/ray-coding-in-rays/p/6211632.html

NYOJ-915 +-字符串(贪心)相关推荐

  1. NYOJ 915 +-字符串

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

  2. [Leedcode][JAVA][第680题][验证回文字符串Ⅱ][贪心][递归]

    [问题描述][第680题][验证回文字符串Ⅱ][简单] 给定一个非空字符串 s,最多删除一个字符.判断是否能成为回文字符串.示例 1:输入: "aba" 输出: True 示例 2 ...

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

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

  4. NYOJ - 非洲小孩(贪心)

    http://nyoj.top/problem/1036 内存限制:64MB 时间限制:1000ms 题目描述: 家住非洲的小孩,都很黑.为什么呢? 第一,他们地处热带,太阳辐射严重. 第二,他们不经 ...

  5. 10.18 一场简单的模拟赛 递推+tarjian+字符串+贪心

    Problem 1 爬楼梯stairscpp 题目来源 题目描述 题解 代码 Problem 2 采蘑菇mushroomcpp 题目来源 题目描述 题解 代码 Problem 3 口令commandc ...

  6. nyoj 208 Supermarket(贪心)

    Supermarket 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 A supermarket has a set Prod of products on sale. ...

  7. NYOJ 658 字符串右移

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

  8. Nyist 915 +-字符串

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

  9. NYOJ 266 字符串逆序输出

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

  10. NYOJ 287 Radar 贪心之 区间选点

    Radar 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 Assume the coasting is an infinite straight line. Land ...

最新文章

  1. geoserver 通过代码实现发布地图服务
  2. 京东数据驱动下的个性化推荐
  3. @scheduled注解配置时间_Java开发重写Spring Boot定时任务,支持可动态调整执行时间...
  4. 报错,Field cardTypeService in cn.yihuazt.cols.controller.CardTypeController required a bean of type ‘c
  5. |ViaVoice(IBM语音识别输入系统)下载v9.1官方版 - 欧普软件下载
  6. 阻止 Mac 进入睡眠模式保持清醒的 5 种方法
  7. 本地idea运行spark,A master URL must be set in your configuration
  8. excel或wps查找文本字符串子串或拆分字符串公式
  9. Warshall算法 (解决传递闭包问题)
  10. ssoj3991: 雪人(snowman)
  11. css去掉按钮默认样式教程_50个针对设计师CSS3按钮教程
  12. 迅为iTOP-4418开发板烧写 Android 7.1 镜像
  13. mysql数据库表示创建表的关键字的是_创建数据表时,使用( )关键字表示创建临时表。_学小易找答案...
  14. 2015年全国大学生电子设计竞赛专题系列之综合测评-Multisim使用技巧
  15. 苹果xr如何关机_苹果新系统让这些 iPhone 电量满血复活
  16. 深度可分离卷积的Depth,Stack,Channel Multiplier
  17. Android动画学习记录二(属性动画、估值器和插值器)
  18. 网易云网络部署参考方案-网易云网络服务研发实践|网易云
  19. 关于极大似然函数与概率的理解
  20. 链脉名片创始人陈润阳谈什么是新营销?

热门文章

  1. 服务器故障内存位置怎么确定,服务器故障内存位置怎么确定
  2. ai如何置入_AI中如何导入图形图像?
  3. 相平衡计算matlab代码,MATLAB,气液相平衡程序,求帮忙改一下。 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...
  4. weka矿产分布文件_石材人注意!北方暴雪将至,货车停运,石材停止发货!(附北方石材分布介绍)...
  5. 订单编号的数据类型是什么_电商仓储是如何进行发货的?拣货的原则是什么?...
  6. ug建模文本怎么竖着_UG软件见解分析一二,设计必备软件,UG新手福音
  7. 三星电视显示服务器无响应,三星电视网络电视看不了是怎么回事?
  8. linux没有.brashrc文件,Linux 安装 Redis4.0.6
  9. python环境变量设置失败
  10. python调用woff_修改Python脚本以批量转换目录中的所有“WOFF”文件