XYNUOJ +-字符串 酒馆浪人的博客
来源:互联网 发布:网络实训室建设方案 编辑:程序博客网 时间:2024/04/28 23:15
1262: +-字符串
时间限制: 1 Sec 内存限制: 128 MB提交: 3 解决: 3
[提交][状态][讨论版]
题目描述
Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交换。他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串。你现在要去帮助他完成那个这个问题。
输入
多组测试数据
每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。
每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。
输出
仅一个整数,输出最少需要操作的次数。如果答案不存在,输出-1。
样例输入
++-+--+
-++--++
样例输出
4
附上自己的代码,已AC
01.
#include<stdio.h>
02.
#include<string.h>
03.
int
main()
04.
{
05.
char
str1[5005],str2[5000];
06.
int
t,len,sum,i,j,l,k;
07.
while
(
scanf
(
"%s%s"
,str1,str2)!=EOF)
08.
{
09.
k=l=0;
10.
len =
strlen
(str1);
11.
for
( i = 0 ; i < len ; i++ )
12.
{
13.
if
( str1[i] ==
'+'
)
14.
k++ ;
15.
if
( str2[i] ==
'+'
)
16.
l++ ;
17.
}
18.
if
( k != l )
19.
{
20.
printf
(
"-1\n"
);
21.
continue
;
22.
}
23.
sum=0;
24.
for
(i=0;i<len;i++)
25.
{
26.
if
(str1[i]!=str2[i])
27.
{
28.
j=i+1;
29.
while
(str1[i]==str1[j]&&j<len)
30.
j++;
31.
t=str1[i];
32.
str1[i]=str1[j];
33.
str1[j]=t;
34.
sum+=j-i;
35.
}
36.
}
37.
printf
(
"%d\n"
,sum);
38.
}
39.
return
0;
40.
}
阅读全文
0 0
- XYNUOJ +-字符串 酒馆浪人的博客
- xynuoj 零用钱 酒馆浪人的博客
- 找零钱 xynuoj 酒馆浪人的博客
- xynuoj 灯光问题 酒馆浪人的博客
- XYNUOJ 1255: 寻找最大数 酒馆浪人的博客
- xynuoj 均分纸牌问题 酒馆浪人的博客
- xynuoj 捕杀恶龙 酒馆浪人的博客
- xynuoj (贪心) 积木大赛 酒馆浪人的博客
- xynuoj 磁带最大利用率问题 酒馆浪人的博客
- xynuoj 可分割背包问题 酒馆浪人的博客
- XYNUOJ 1246: Repair the Wall 贪心水题 酒馆浪人的博客
- xynuoj NOIP2007普及组第2题 纪念品分组 酒馆浪人的博客
- nyoj 找点 酒馆浪人的博客
- 美元汇率问题 酒馆浪人的博客
- if,while的一点点知识 酒馆浪人的博客
- vector的日常笔记 酒馆浪人的博客
- NYOJ D的小L 酒馆浪人的博客
- NYOJ 擅长排列的小明 酒馆浪人的博客
- JQ中AJAX的isModified
- SQL优化之--日期时间段的读取
- 最新 macOS Sierra 10.12.5 安装CocoaPods及使用详解
- 【Machine Learning】笔记:Overfitting 问题
- 笔记2 《C++大学教程》
- XYNUOJ +-字符串 酒馆浪人的博客
- wsimport命令或myeclipse生产webservice客户端
- Java之23种设计模式
- Oracle 11g 常用命令 (转)
- 汤圆の拯救计划
- Hadoop项目实战---日志分析
- Android 6.0 搜索不到附近蓝牙问题解决
- git pull request
- ListView中getChildAt(index)的使用注意事项