一个函数

一个函数
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
#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("
");
    }
    return 0;
}
原文地址:https://www.cnblogs.com/beige1315402725/p/5013230.html