南阳915+-字符串
来源:互联网 发布:战舰世界 科技树数据 编辑:程序博客网 时间:2024/04/27 18:57
+-字符串
时间限制:1000 ms | 内存限制:65535 KB
难度:1
- 描述
- Shiva得到了两个只有加号和减号的字符串,字串长度相同。Shiva一次可以把一个加号和它相邻的减号交换。他想知道最少需要多少次操作才能把第一个字符串变换成第二个字符串。你现在要去帮助他完成那个这个问题。
- 输入
- 多组测试数据
每组数据有两行,每行包含一个由”+”和”-“最成的字符串。每个子符串长度不超过5000。 - 输出
- 仅一个整数,输出最少需要操作的次数。如果答案不存在,输出-1。
- 样例输入
++-+--+ -++--++
- 样例输出
4
01.
#include<stdio.h>
02.
#include<string.h>
03.
#define maxn 6000
04.
int
main()
05.
{
06.
char
a[maxn],b[maxn];
07.
int
n,
time
,i,j;
08.
char
t;
09.
while
(~
scanf
(
"%s%s"
,a,b))
10.
{
11.
int
x=0,y=0,z=0,w=0;
12.
int
flag=1;
13.
time
=0;
14.
int
l1=
strlen
(a);
15.
int
l2=
strlen
(b);
16.
if
(l1!=l2)
17.
{
18.
flag=0;
19.
continue
;
20.
}
21.
for
(i=0;i<l1;i++)
22.
{
23.
if
(a[i]==
'+'
)x++;
24.
if
(a[i]==
'-'
)y++;
25.
if
(b[i]==
'+'
)z++;
26.
if
(b[i]==
'-'
)w++;
27.
}
28.
if
(x!=z||y!=w)
29.
{
30.
flag=0;
31.
continue
;
32.
}
33.
else
34.
{
35.
for
(i=0;i<l1;i++)
36.
{
37.
// if(a[i]!=b[i])
38.
//{
39.
for
(j=i;j<l1;j++)
40.
if
(a[j]==b[i])
41.
{
42.
t=a[i];a[i]=a[j];a[j]=t;
43.
time
+=(j-i);
44.
break
;
45.
}
46.
//}
47.
//}
48.
49.
/*
50.
for(j=i;j<l1;j++)
51.
if(a[i]!=b[i])
52.
{
53.
//for(j=i;j<l1;j++)
54.
t=a[i];a[i]=a[j];a[j]=t;
55.
time++;
56.
}
57.
*/
58.
}
59.
}
60.
if
(flag)
61.
printf
(
"%d\n"
,
time
);
62.
else
63.
printf
(
"-1"
);
64.
}
65.
return
0;
66.
}
0 0
- 南阳 915 +-字符串
- 南阳915+-字符串
- 南阳题目915-+-字符串
- 南阳oj 915 +-字符串
- 南阳理工OJ_题目915 +-字符串
- 南阳 oj NYoj 贪心 题目915 +-字符串
- 南阳理工:字符串替换
- 南阳理工:回文字符串
- 南阳-113字符串替换
- 南阳oj 字符串替换
- 南阳理工ACM915 +-字符串
- 【南阳】字符串匹配
- 南阳oj 回文字符串
- 南阳理工:字符串逆序输出
- 南阳 658 字符串右移
- 字符串替换(南阳113)
- 南阳题目113-字符串替换
- 南阳理工acm37 回文字符串
- android 学习
- VC++ 使用msado15.dll ADO数据库控件
- 快速排序
- Shareplex在linux下的安装图解
- HBase技术介绍
- 南阳915+-字符串
- 牛刀小试(四)——较完善的购物系统
- css-hack-不同浏览器
- c++异常Try catch
- HDU 2700 Parity
- 从windows启动mysql server
- 简单C++调用lua函数的小例子
- XP停止服务:不必难过 千里相送终有一别
- C++使用内存映射文件入门