nyoj 915 -+字符串
来源:互联网 发布:java内部类例子 编辑:程序博客网 时间:2024/06/03 18:58
+-字符串
时间限制:1000 ms | 内存限制:65535 KB
难度:1
- 描述
- Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交换。他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串。你现在要去帮助他完成那个这个问题。
- 输入
- 多组测试数据
每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。 - 输出
- 仅一个整数,输出最少需要操作的次数。如果答案不存在,输出-1。
- 样例输入
++-+--+ -++--++
- 样例输出
4
解题思路:字符串ch1和ch2进行一一对比, 当遇到不相同, 进行比较ch1下一个字符,直到相同位置, 字符串ch1的位置减去ch2当前的位置,就是字符串需要移动的步数,直到查找到字符串尾部。把移动的步数相加就是总共需要移动的步数。
AC代码:
# include <stdio.h># include <string.h>int main(void){char ch1[1005];char ch2[1005];int i, j;while (scanf("%s %s", ch1, ch2) != EOF){int len1 = strlen(ch1);int sum = 0;int ok = 0;for (i = 0; i < len1; i++){if (ch1[i] != ch2[i]){for (j = i + 1; j < len1; j++){if (ch1[j] == ch2[i]){break;}}if (j == len1){ok = -1;}sum += (j - i);ch1[j] = ch1[i]; //进行移动}}if (!ok){printf("%d\n", sum);}else{printf("-1\n");}}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 +-字符串
- python2 和 python3比较
- 图片存储与转换处理
- 黑白棋游戏
- Generative Adversarial Nets
- 剑指offer 字符串的排列
- nyoj 915 -+字符串
- Oracle_PL/SQL 存储过程
- 因子平方和
- 64. Minimum Path Sum
- 解决"Classpath entry org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER will not be exported or published"问题
- 程序员的沟通之痛
- mysql 导出数据库到本地
- 个人记录-LeetCode 91. Decode Ways
- 解决 Archlinux 下qmake后 make 找不到 QApplication