NYOJ 915 +-字符串
来源:互联网 发布:bp神经网络的java实现 编辑:程序博客网 时间:2024/06/05 16:46
+-字符串
时间限制:1000 ms | 内存限制:65535 KB
- 描述
- Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交换。他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串。你现在要去帮助他完成那个这个问题。
- 输入
- 多组测试数据
每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。 - 输出
- 仅一个整数,输出最少需要操作的次数。如果答案不存在,输出-1。
- 样例输入
++-+--+ -++--++
- 样例输出
4
#include<stdio.h>#include<string.h>int main(){char a[5000],b[5000],ch;while(gets(a)!='\0'&&gets(b)!='\0'){int c,d,i,j,n=0,m=0,x=0;c=strlen(a);d=strlen(b);if(c!=d)//判断二者长度是否相等 不相等输出-1 相等的话再看'+'(或者'-')的个数是否相等 {printf("-1\n");continue;}for(i=0;i<c;i++)if(a[i]=='+')m++;for(i=0;i<d;i++)if(b[i]=='+')x++; if(x!=m)//'+'(或者'-')的个数不相等,输出-1 相等的话开始计算经过几次能够完成变换 {printf("-1\n");continue;}for(i=0;i<c;i++){if(a[i]==b[i])//依次判断各个对应位置上字符是否一致 continue;for(j=i;j<c-1;j++){n++;if(a[i]==a[j+1])continue;else{ch=a[i];a[i]=a[j+1];a[j+1]=ch;break;}}}printf("%d\n",n);}return 0;}
阅读全文
1 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 +-字符串
- Element Ui 中 nav组件使用子路由跳转遇到的
- hdu 4609 FFT 2013年多校
- 程序的输出
- 菜鸟先飞之JAVA_String类
- 世界排名前100的古典音乐榜单
- NYOJ 915 +-字符串
- 关于华为手机自定义view中NavigationBar显示与隐藏造成高度问题的解决办法
- 称不上项目的小程序3:计算器
- SpringMVC中的异常处理
- 17暑假多校联赛4.9 HDU 6075 Questionnaire
- wireshark的简单使用
- Docker基础教程(6)进阶命令-3-分享你的镜像
- C++ STL 之 vector
- struts2的API