傳紙條
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
傳紙條是一種在課堂上傳遞信息的老方法,雖然現在手機短信和QQ聊天越來越普及,但是手寫的信息會讓人感到一種親切感。對許多學生而言,在學校裏傳遞一些私祕性的信息是一種令人興奮的打發時光的方式,特別是在一些令人厭煩的課堂上。
XX 和 YY 經常在自習課的時候傳紙條來傳遞一些私密性的信息。但是他們的座位相隔比較遠,傳紙條要通過其他人才能到達對方。在傳遞過程中,難免會有一些好奇心比較強的同學偷看紙條的內容。所以他們想到了一個辦法,對紙條內容進行加密。
加密規則很簡單:多次在信息的任意位置隨意的添加兩個相同的字母。
由於使用英文交流顯得比較高端,所以他們的紙條內容只有英文。
現在給你加密後的信息,請你還原出原始的內容。
Input
輸入數據的第一行爲一個正整數 T(T ≤ 30),表示共有 T 組測試數據。
接下來 T 行,每行爲一個字符串,字符串僅包含小寫英文字母,且保證原始字符串中不包含相鄰兩個相同的字母,字符串長度不超過200000。
Output
每組數據輸出一行字符串,表示還原後的內容。
Sample Input
1
ssilofaafveuuu
Sample Output
iloveu
Hint
樣例解釋:
刪除掉aa後,又出現了ff,ff也要刪除掉。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d", &n);
while(n--)
{
char str[200001];
char stk[200001];
scanf("%s",str);
int cnt = 0;
stk[cnt++] = str[0];
for(int i = 1; i < strlen(str); i++)
{
if(str[i] == stk[cnt-1])
{
cnt--;
}
else
{
stk[cnt++] = str[i];
}
}
stk[cnt] = '\0';
printf("%s\n",stk);
}
return 0;
}