傳紙條是一種在課堂上傳遞信息的老方法,雖然現在手機短信和QQ聊天越來越普及,但是手寫的信息會讓人感到一種親切感。對許多學生而言,在學校里傳遞一些私秘性的信息是一種令人興奮的打發時光的方式,特別是在一些令人厭煩的課堂上。
XX 和 YY 經常在自習課的時候傳紙條來傳遞一些私密性的信息。但是他們的座位相隔比較遠,傳紙條要通過其他人才能到達對方。在傳遞過程中,難免會有一些好奇心比較強的同學偷看紙條的內容。所以他們想到了一個辦法,對紙條內容進行加密。
加密規則很簡單:多次在信息的任意位置隨意的添加兩個相同的字母。
由于使用英文交流顯得比較高端,所以他們的紙條內容只有英文。
現在給你加密后的信息,請你還原出原始的內容。 I**nput**
輸入數據的第一行為一個正整數 T(T ≤ 30),表示共有 T 組測試數據。
接下來 T 行,每行為一個字符串,字符串僅包含小寫英文字母,且保證原始字符串中不包含相鄰兩個相同的字母,字符串長度不超過200000。 Output
每組數據輸出一行字符串,表示還原后的內容。 Example Input
1ssilofaafveuuuExample Output
iloveuHint 樣例解釋:
刪除掉aa后,又出現了ff,ff也要刪除掉。 Author “師創杯”山東理工大學第五屆ACM程序設計競賽
#include <iostream>#include <algorithm>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <bits/stdc++.h>#include <stack>#include <deque>#include <queue>using namespace std;char k[201000];int main(){ int t; stack < char > p; scanf("%d", &t); getchar(); while(t--) { gets(k); int b=strlen(k); for(int a=0; a<b; a++) { if(!p.empty()&&k[a]==p.top()) { p.pop(); } else p.push(k[a]); } int c=p.size(); k[c]='/0'; int i=c-1; while(!p.empty()) { k[i--]=p.top(); p.pop(); } printf("%s/n", k); } return 0;}新聞熱點
疑難解答