zoukankan      html  css  js  c++  java
  • 2018年全国多校算法寒假训练营练习比赛(第二场)A.吐泡泡

    原题链接

    描述

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

    输入

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

    输出

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

    样例输入

    ooOOoooO

    样例输出

    oO

    思路

    用栈模拟就好,水题

    代码

    #include <bits/stdc++.h>
    #define ll long long
    using namespace std;
    
    void check(char ans[], int len)
    {
    	if(len == 0) return;
    	while(ans[len] == ans[len-1])
    	{
    		ans[len] = ''; len--;
    		if(ans[len] == 'o') ans[len] = 'O';
    		else ans[len--] = '';
    		if(len <= 0) return;
    	}
    }
    
    int main()
    {
    	char s[102];
    	while(~scanf("%s", s))
    	{
    		char ans[102];
    		int f = 1;
    		while(f)
    		{
    			memset(ans,0,sizeof(ans));
    			ans[0] = s[0]; int j = 1; f = 0;
    			int len = strlen(s);
    			for(int i = 1; i < len; i++)
    			{
    				int j = strlen(ans);
    				ans[j] = s[i];
    				check(ans, j);
    			}
    			memset(s,0,sizeof(s));
    			for(j = 0; ans[j] != ''; j++)
    				s[j] = ans[j];
    			s[j] = '';
    		}
    		printf("%s
    ", s);
    	}
    	return 0;
    }
    
  • 相关阅读:
    二进制状态压缩对应 bool 数组中的常用操作
    [Acwing 327] 玉米田 题解
    [CF Contest] Web of Lies 题解
    ArchLinux安装vscode
    ArchLinux安装并且配置fcitx5
    【日常训练】取数问题
    Oracle sql 转 Hive sql一些语法问题
    Oracle中的connect by 转成hive的 lateral view explode
    Hive之分析函数
    数据仓库之拉链表设计
  • 原文地址:https://www.cnblogs.com/HackHarry/p/8401586.html
Copyright © 2011-2022 走看看