AcWing 678. 万万没想到之聪明的编辑
原题链接
简单
作者:
跟着灿哥学切菜
,
2021-02-06 10:35:42
,
所有人可见
,
阅读 392
#include <iostream>
using namespace std;
const int N = 1000010;
char s[N];
int main() {
int T;
cin >> T;
while (T --) {
cin >> s;
int k = 0;
for (int i = 0; s[i]; i ++) {
//将i位置上的字符先加进来
s[k ++] = s[i];
// if (k >= 3 && s[k - 3] == s[k - 2] && s[k - 2] = s[k - 1] ) k --;
if (k >= 3 && s[k - 3] == s[k - 2] && s[k - 2] == s[k - 1]) k --;
if (k >= 4 && s[k - 4] == s[k - 3] && s[k - 2] == s[k - 1]) k --;
}
//此时表示这个字符串的已经处理完成
//在最终的打印的时候, 一定是遇到'\0'就停止, 如果没有遇到, 则不会停止。
s[k] = '\0';
cout << s << endl;
}
return 0;
}