------------只要够努力,人生最坏的结局不过是大器晚成!!!

链接: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'组成的字符串。

输出描述:

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

输入

ooOOoooO

输出

oO

说明

自左到右进行合并

备注:

对于100%的数据,
字符串的长度不超过100。

#include <iostream>
#include <cstring>
using namespace std;
string str;

int main(){
	
	while(cin >> str){
		int flag = 1;
		int leng = str.length();
		
		while(flag){
			flag = 0;
			string str2;
			int del = 0;
			for(int i = 0; i <= leng - 1; i++){
				if(i == leng - 1){
					str2 += str[i];
					continue;
				}
				if(str[i] == 'o' && str[i + 1] == 'o' && flag == 0){
					flag = 1;
					str2 += 'O';
					del++;
					i++; 
					continue;
				}
				else if(str[i] == 'O' && str[i + 1] == 'O' && flag == 0){
					flag = 1;
					del += 2;
					i += 1;
					continue;
				}
				else{
					str2 += str[i];	
					continue;
				}
			}
			leng -= del;
//			cout << "str2 " << str2 << endl; 
			str = str2;
		} 
		cout << str << endl;
	}
	
	return 0;
}
 

  

posted on 2018-01-29 13:07  ystraw  阅读(160)  评论(0编辑  收藏  举报

不经一番切孤寒,怎得梅花扑鼻香