公司:字节跳动
类型:字符串
难度:1级
题意:把超过3个相同字符的保留为2个,把AABB型的保留位AAB类型。
方法:暴力枚举
时间复杂度:
O
(
n
)
O(n)
O(n)
#include <iostream>
#include <string>
using namespace std;
int main(){
int n;
scanf("%d", &n);
string s;
while(n--){
cin>>s;
int j = 0;
//如何暴力模拟也是需要锻炼的能力
for(int i = 0; i < s.size(); i++){
s[j] = s[i];
if(j>=2 && s[j]==s[j-1] && s[j-1]==s[j-2]) j--;
if(j>=3 && s[j]==s[j-1] && s[j-2]==s[j-3]) j--;
++j;
}
s.erase(s.begin()+j, s.end());
cout<<s<<endl;
}
}