1. 程式人生 > >zzuli:小G的日常之遊戲

zzuli:小G的日常之遊戲

http://acm.zzuli.edu.cn/problem.php?id=2399

題目描述

小G最近在玩一個字元消除遊戲。給定一個只包含大寫字母的字串s,消除過程是如下進行的:
(1)從前往後如果在s中找到連續兩個相同的字母,那麼這兩個連續相同的字母會被同時消除,餘下的字串拼成新的字串。
(2)反覆重複步驟(1),直到新的字串不包含相鄰的相同字元為止。

 

輸入

ABAABAC經過第一輪得到ABBAC,經過第二輪得到AAC,經過第三輪得到C

 

輸出

一個字串s(s的長度不超過1e6)

 

樣例輸入

ABAABAC

 

樣例輸出

C

棧的後進先出操作

#include<stdio.h>
#include<string.h>
#define N 1000200
char str[N],ans[N];
int main()
{
	int i,len,j;
	scanf("%s",str);
	len=strlen(str);
	ans[0]=str[0];
	j=1;
	for(i=1;i<len;i++)
	{ 
		ans[j]=str[i];                        //進棧
		if(j>=1&&ans[j]==ans[j-1])            //出棧
			j-=2;
		j++;
	}
	ans[j]='\0';
	puts(ans);
	return 0;
}