nyoj 915 +-字符串
来源:互联网 发布:淘宝一楼土木人怎么样 编辑:程序博客网 时间:2024/06/06 00:40
+-字符串
- 描述
- Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交换。他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串。你现在要去帮助他完成那个这个问题。
- 输入
- 多组测试数据
每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。 - 输出
- 仅一个整数,输出最少需要操作的次数。如果答案不存在,输出-1。
- 样例输入
++-+--+ -++--++
- 样例输出
4
这道题不难,但是真变态!!!
#include<stdio.h>
#include<string.h>
int main()
{
int h1,h2,i,sum,j;char s1[5005],s2[5005],t;
while(~scanf("%s%s",s1,s2))
{
sum=0;
h1=strlen(s1);h2=strlen(s2);
if(h1!=h2)
sum=-1;
else
{
for(i=0;i<h1;i++)
{
if(s1[i]!=s2[i])
{
for(j=i+1;j<h1;j++)
{
if(s1[j]==s2[i])
{
while(j>i)
{
t=s1[j];
s1[j]=s1[j-1];
s1[j-1]=t;
j--;
sum++;
}
break;
}
}
}
}
printf("%d\n",sum);
}
}
return 0;
}
- 思路:就是逐个比较,当俩数组的第i个符号不相等时,那么再写一层循环,往后找,s1 中第j个和字符,和s2 中的第i个字符相等,然后,逐个交换,纪录步数;然后依次寻找,直到h1 为止。
- 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 +-字符串
- vector<int>::iterator和vector<int*>::iterator还有vector<int>*的区别
- HTTP协议漫谈
- Uvalive 6259 Word equations dfs+dp
- ubuntu解压缩、压缩命令
- iOS中_Bool,BOOL,bool,boolean_t,Boolean的区别总结
- nyoj 915 +-字符串
- 五张图带你体会堆算法
- Codeforces/gym/100685/problem/G Gadget Hackwrench ( LCA )
- 每日三个笑话-20151004
- 表的编辑
- C#学习日记10----番外篇 C语言进制转换
- Delphi中的注释
- 【状压dp】hdu 4539 郑厂长系列故事——排兵布阵
- 取mac信息的示例代码