这道数据结构的题是Tsinghua Online judge上的,本意是让用list结构实现的,但我一开始完全没思路,准确的说是没有理解数据结构的习题的含义,竟然想用C++本身带的STL,后来发现跑偏了之后,就想用char数组,后来的后来,干脆就用string实现了,OJ得分65,各种阴差阳错啦。
代码如下:
1 // zuma.cpp : 定义控制台应用程序的入口点。 2 // 3 #include<iostream> 4 #include<string> 5 using namespace std; 6 7 int main() 8 { 9 string s; 10 int n; 11 cin >> s; 12 cin >> n; 13 while (n--) 14 { 15 int pos; 16 string marble; 17 cin >> pos; 18 cin >> marble; 19 s.insert(pos, marble); 20 int i = 0; 21 while (i!=s.length()-2 &&s.length()>=3) 22 { 23 if (s[i] == s[i + 1] && s[i] == s[i + 2]) 24 { 25 s.erase(s.begin() + i, s.begin() + i + 3); 26 i = 0; 27 } 28 else 29 i++; 30 } 31 if (s.empty()) 32 cout << "-" << endl; 33 else 34 cout << s << endl; 35 } 36 return 0; 37 }