欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

字符串合并

程序员文章站 2022-07-13 17:31:20
...
链接:https://www.nowcoder.com/acm/contest/74/A
来源:牛客网

吐泡泡
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

小鱼儿吐泡泡,嘟嘟嘟冒出来。小鱼儿会吐出两种泡泡:大泡泡"O",小泡泡"o"。
两个相邻的小泡泡会融成一个大泡泡,两个相邻的大泡泡会爆掉。
(是的你没看错,小气泡和大气泡不会产生任何变化的,原因我也不知道。)
例如:ooOOoooO经过一段时间以后会变成oO。
字符串合并

输入描述:

数据有多组,处理到文件结束。
每组输入包含一行仅有'O'与'o'组成的字符串。

输出描述:

每组输出仅包含一行,输出一行字符串代表小鱼儿吐出的泡泡经过融合以后所剩余的泡泡。             

#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    char c[201];
    while(memset(c,0,sizeof(c)),cin>>c){
        int l=strlen(c);
        for (int x=0;x<=100;x++)
        for (int i=0;i<l;i++){
            if (c[i]=='o'&&c[i+1]=='o') {c[i]='O';for (int j=i+1;j<l;j++) c[j]=c[j+1];l--;break;}
            if (c[i]=='O'&&c[i+1]=='O') {for (int j=i;j<l-1;j++) c[j]=c[j+2];l--;break;}
        }
        cout<<c<<endl;
    }
    return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
    string a,b,c,s;
    while(cin>>a)
    {
        int i;
        for(i=1;i<a.size();i++)
        {
            if(a[i]=='o'&&a[i-1]==a[i])
            {
                a.replace(i-1,2,"O");
                i=i-2;
            }
                 
            if(a[i]=='O'&&a[i-1]=='O')
            {
                a.erase(i-1,2);
                i=i-2;
            }
        }
        cout<<a<<endl;
    }
 }