1437: 無題
時間限制:?1 Sec??內存限制:?128 MB提交:?268??解決:?45
[提交][狀態][討論版]
題目描述
tc在玩一個很無聊的游戲:每一次電腦都會給一個長度不超過10^5的字符串,tc每次都從第一個字符開始,
如果找到兩個相鄰相一樣的字符,就會把它們刪除掉,然后再重新從第一個字符開始,直到不能找到這樣的字符,?
這樣tc就得勝了。 你能幫助tc嗎?
輸入
多組數據,每組一行字符。
輸出
輸出最后的字符串,占一行。
樣例輸入
abccbad
樣例輸出
d
#include<iostream> #include<cstring> #include<cstdio> #include<deque> using namespace std; const int N = 100000 + 5;char ch[N]; char str[N];int main(){while(fgets(str, N, stdin) != NULL){memset(ch, '\0', sizeof(ch));int len = strlen(str), cur = 0;for(int i = 0; i < len; i++){if(isspace(str[i])) continue;if( cur == 0 || ch[cur] != str[i]) ch[++cur] = str[i];else if(ch[cur] == str[i]) cur--;}ch[++cur] = '\0';puts(ch + 1);}return 0; }
?