目录
一个函数

** 一个函数:** <Excerpt in index | 首页摘要>

<The rest of contents | 余下全文>

一个函数
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 48(37 users) Total Accepted: 38(35 users) Rating: Special Judge: No
Description
现在用一个函数来处理一个字符串(该字符串只包含x和y)。

函数的两个操作如下。

1. 在字符串中找到两个连续的字符(可以不相邻),并且第一个字符是’y’,第二个字符是’x’,然后交换它们。如果一次存在多种满足该条件的连续字符,我们就找到最靠近字符串开始位置的那组进行操作。

2. 在字符串中找到两个连续的字符(可以不相邻),并且第一个字符是’x’,第二个字符是’y’,

然后从原串中将这两个字符删除。如果一次存在多种满足该条件的连续字符,我们就找到最靠近字符串开始位置的那组进行操作。

函数的运行步骤如下:

Step1: 如果你对当前的字符串至少可以进行上面两个操作中的一个,就进入Step2,否则函数运行结束。

Step2:如果你可以进行1 操作就执行它。否则执行2操作1次,2操作结束后进入Step1.

请输出函数运行结束之后经过处理符串。

Input
输入一个字符串,保证字符串不为空且仅由’x’和’y’组成。字符串长度为1~106。
Output
输出函数返回值。

保证测试数据不会让返回值为空串。

Sample Input
x

yxyxy

xxxxxxy

Sample Output
x

y

xxxxx

Author
曾卓敏 @hrbust

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
char a[1000000];
char b[1000000];
int main()
{
while(~scanf("%s",a))
{
int i;
int xnum=0,ynum=0;
int key=strlen(a);
for(i=0;i<key;i++)
{
if(a[i]=='x')
{
xnum++;
}
else
{
ynum++;
}
}
int k;
if(xnum>ynum)
{
k=xnum-ynum;
for(i=0;i<k;i++)
{
printf("x");
}
}
else
{
k=ynum-xnum;
for(i=0;i<k;i++)
{
printf("y");
}
}
printf("\n");
}
return 0;
}
文章作者: 爱笑的k11
文章链接: http://1315402725.github.io/posts/7276e8df/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 爱笑的k11
打赏
  • 微信
  • 支付寶

评论