模拟题.
但是可以借这题熟悉一下STL的list用法
首先, list有push_front 与 pop_front, 但显然, 这俩功能解决不了这个题
考虑使用迭代器和insert修改器.
查阅资料, insert插入单个元素时返回值为这个值的位置,
而且,
iterator insert( iterator pos, const T& value );
是在 pos
前插入 value
。
了解了这些, 不难写出程序.
1 #include2 #include 3 #include 4 #include 5 using namespace std; 6 const int HEAD = 0; 7 const int TAIL = 1; 8 9 list
l;string s;10 11 int main()12 {13 //freopen("11988.in", "r", stdin);14 ios::sync_with_stdio(false);15 char ch; list ::iterator it = l.begin();16 while(cin>>s)17 {18 for(int i = 0; i < (int) s.size(); i++)19 {20 ch = s[i];21 if(ch == '[') it = l.begin();22 else if(ch == ']') it = l.end();23 else it = l.insert(it, ch), it++;24 }25 for(it = l.begin(); it != l.end(); it++)26 cout<<*it;27 cout<