这道题目可以利用 vetor来做,因为它是动态的数组,可以进行插入和删除及更多功能
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string str1,str2,str3;
vector<string>vt;
vector<string>::iterator it;
void push(string str) {//这是将第一个字符串放在vector中
int len;
len=str.size();
string s="";
for(int i=1; i<len; i++) {
if(str[i]==','||str[i]==']') {
if(s!="")vt.push_back(s);
s="";
} else {
s+=str[i];
}
}
}
void add(string str) {//这是进行相加的操作
int len;
len=str.size();
string s="";
for(int i=1; i<len; i++) {
if(str[i]==','||str[i]==']') {
if(s!="")vt.push_back(s);
s="";
} else {
s+=str[i];
}
}
}
void sub(string str) {//这是相减的操作
int len;
len=str.size();
string s="";
for(int i=1; i<len; i++) {
if(str[i]==','||str[i]==']') {
for(it=vt.begin(); it!=vt.end(); it++) {
if(s==*it) {
vt.erase(it);
break;
}
}
s="";
} else {
s+=str[i];
}
}
}
int main() {
while(cin>>str1) {
vt.clear();
if(str1==".")break;
push(str1);
cin>>str2>>str3;
if(str2=="++") {
add(str3);
} else sub(str3);
if(vt.begin()==vt.end()) {
cout<<"[]"<<endl;
continue;
}
else {
cout<<"[";
for(it=vt.begin(); it!=vt.end(); it++) {
if(it+1!=vt.end()) {
cout<<*it<<",";
} else {
cout<<*it<<"]"<<endl;
}
}
}
}
return 0;
}