题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3139
题 意:给你一串字符,内部含有”【“和”】“光标转移指令,【代表光标移向文章头,】代表光标移向文章尾,问最终在屏幕上显示的字符串序列是?
思 路:由于【之后的用dfs模拟,逆向运算即可。
代码如下:
#include <iostream>
using namespace std;
#include <string.h>
#include <stdio.h>
#include <stack>
#include <algorithm>
char vis[120000];
void dfs( int l, int r )
{
int s = r;
while( s >= l && vis[s] != '[' && vis[s] != ']' ) s--;
if( vis[s] == ']' ) dfs(l,s-1);
for( int i = s+1; i <= r; i ++ )
printf("%c",vis[i]);
if(vis[s] == '[' ) dfs(l,s-1);
}
int main()
{
while( scanf ( "%s", vis ) != EOF )
{
int len = strlen(vis);
dfs(0,len-1);
printf("\n");
}
return 0;
}