博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018年全国多校算法寒假训练营练习比赛(第二场)A.吐泡泡
阅读量:7059 次
发布时间:2019-06-28

本文共 1204 字,大约阅读时间需要 4 分钟。

描述

小鱼儿吐泡泡,嘟嘟嘟冒出来。小鱼儿会吐出两种泡泡:大泡泡"O",小泡泡"o"。

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

输入

数据有多组,处理到文件结束。

每组输入包含一行仅有'O'与'o'组成的字符串。

输出

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

样例输入

ooOOoooO

样例输出

oO

思路

用栈模拟就好,水题

代码

#include 
#define ll long longusing namespace std;void check(char ans[], int len){ if(len == 0) return; while(ans[len] == ans[len-1]) { ans[len] = '\0'; len--; if(ans[len] == 'o') ans[len] = 'O'; else ans[len--] = '\0'; 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] != '\0'; j++) s[j] = ans[j]; s[j] = '\0'; } printf("%s\n", s); } return 0;}

转载于:https://www.cnblogs.com/HackHarry/p/8401586.html

你可能感兴趣的文章
iOS ASIHTTPRequest详解
查看>>
如何安全的使用比特币
查看>>
从http切换到https
查看>>
Apache配置——防盗链
查看>>
基于类的QoS
查看>>
fastjson序列化时不输出值为null的字段
查看>>
安卓基本常用控件: View
查看>>
ELK+filebeat日志分析系统部署文档
查看>>
写给开发者看的关系型数据库设计
查看>>
struct net_device网络设备结构体详解
查看>>
cacti监控 On RHEL6
查看>>
ORACLE监听能正常启动,但实例监听不到故障应急处理一例
查看>>
我的友情链接
查看>>
Linux现在已主导Azure
查看>>
kalcaddle在线文件管理器
查看>>
思科ASA8.4.2 2层透明墙基本实施和配置用例
查看>>
第一个vue应用
查看>>
mail
查看>>
在JAVA中将项目转换为maven项目
查看>>
微信三大平台介绍
查看>>