提示
列表
#1 使用STL list
题目已提示使用list,首先贴上使用STL的代码,由于Tsinghua OJ上禁掉了大部分STL,所以只测试了样例中的数据。
#include
#include
#include
using namespace std;
#define N 20001
list l('#');
char s[N];
void del( list::iterator in, char c){
int sum = 0;
list::iterator first, second = in;
-- in;
first = in;
for (; first != l.begin(); -- first ) {
if (*first == c) {
sum ++;
}
else break;
}
for (; second != l.end(); ++ second) {
if (*second == c && c != '\0') {
sum ++;
}
else break;
}
if (sum >= 3) {
l.erase(++first, second);
del(second, *second);
}
}
int main(){
scanf("%s",&*s);
int len = (int)strlen(s);
for (int i = len-1; i >=0 ; i --) {
l.push_front(s[i]);
}
l.push_front('#');
int n;
scanf("%d",&n);
for (int i = 0; i < n; i ++) {
int ind;
char c;
scanf("%d %c",&ind,&c);
list::iterator in = ++l.begin();
for