NYOJ 915 +-字符串

原创 2016年06月01日 12:27:08

+-字符串

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

每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。
输出
仅一个整数,输出最少需要操作的次数。如果答案不存在,输出-1。
样例输入
++-+--+ 
-++--++ 
样例输出
4
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 5000 + 10;
char str1[maxn], str2[maxn];
int main()
{
    while(scanf("%s%s", str1, str2) != EOF){
        int len = strlen(str1);
        int sum1 = 0, sum2 = 0;
        for (int i = 0; i < len; i++){
            if (str1[i] == '+')
                sum1++;
            if (str2[i] == '+')
                sum2++;
        }
        if (sum1 != sum2){
            printf("-1\n");
            continue;
        }
        int ans = 0;
        for (int i = 0; i < len; i++){
            if (str1[i] != str2[i]){
                for (int j = i + 1; j < len; j++){
                    ans++;
                    if (str1[j] == str2[i]){
                        str1[j] = str1[i];
                        break;
                    }
                }
            }
        }
        printf("%d\n", ans);
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

nyoj 44 子串和【最大子串和】

子串和 时间限制:5000 ms  |  内存限制:65535 KB 难度:3 描述给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的...
  • liuke19950717
  • liuke19950717
  • 2015年08月28日 09:25
  • 2816

NYOJ - 回文字符串(DP)

回文字符串 时间限制:3000 ms  |           内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"ab...
  • SevenMIT
  • SevenMIT
  • 2013年04月11日 23:27
  • 1815

NYOJ:题目111 分数加减法

分数加减法 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述编写一个C程序,实现两个分数的加减法 输入输入包含多行数据  每行数据是一...
  • zugofn
  • zugofn
  • 2016年04月10日 16:19
  • 1076

nyoj 915 +-字符串(贪心)

+-字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号...
  • Ice_Alone
  • Ice_Alone
  • 2014年11月24日 13:54
  • 789

NYOJ 915 +-字符串

+-字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号...
  • u011705378
  • u011705378
  • 2014年05月01日 22:45
  • 586

nyoj915 +-字符串(贪心)

+-字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交...
  • riba2534
  • riba2534
  • 2016年11月07日 21:50
  • 266

NYOJ915 +-字符串

原题链接 主要思路:从左到右,逐个比较,若有不同,标记此不同地点,并向右搜寻首个相同点,从该点开始挨个与左边位置交换并统计交换次数。 #include #include #define MAX 5...
  • u012846486
  • u012846486
  • 2014年03月13日 20:57
  • 980

nyoj 915 +-字符串 【字符串】

思路:从左往右2
  • shengweisong
  • shengweisong
  • 2014年10月13日 13:23
  • 606

NYOJ 题目915+-字符串(字符串,水题)

#include #include int main() { char s1[100000],s2[10000]; while(scanf("%s%s",s1,s2)!=EOF) { int...
  • yu_ch_sh
  • yu_ch_sh
  • 2014年08月29日 00:55
  • 289

NYOJ题目915+-字符串(水题,字符串)

+-字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号...
  • yu_ch_sh
  • yu_ch_sh
  • 2014年09月14日 22:08
  • 497
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NYOJ 915 +-字符串
举报原因:
原因补充:

(最多只允许输入30个字)