题目大意:
输入一个文章,[ 就是把光标放到最前面 ] 把光标放到最后面。
输出最后得到的文章。
思路分析:
用deque 模拟。
#include <iostream> #include <cstdio> #include <queue> #include <cstring> #define maxn 111111 using namespace std; char str[maxn]; deque <char> Q; deque<char>::iterator it; int main() { while(scanf("%s",str)!=EOF) { Q.clear(); int len=strlen(str); bool head=false; int st; int ed; for(int i=0;i<len;i++) { if(str[i]==‘[‘) { int j=i+1; while(str[j]!=‘[‘ && str[j]!=‘]‘ && j<len) j++; j--; int pos=j; for(;j>i;j--)Q.push_front(str[j]); i=pos; } else if(str[i]==‘]‘) { continue; } else Q.push_back(str[i]); } for(it=Q.begin();it!=Q.end();it++) printf("%c",*it); puts(""); } return 0; }
UVA 11988 Broken Keyboard (a.k.a. Beiju Text),布布扣,bubuko.com
UVA 11988 Broken Keyboard (a.k.a. Beiju Text)
原文地址:http://blog.csdn.net/u010709592/article/details/26279857