hdu 1022 - 数据结构 栈

Posted redips

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 1022 - 数据结构 栈相关的知识,希望对你有一定的参考价值。

题目链接

按序列a进栈,问能不能按序列b出栈。

 

遍历b,如果当前元素进过栈了,那么必须和栈顶元素相同。如果没进过栈则按a序列压栈,直到遇到当前元素。

#include <iostream>
#include <stack>
#include <string.h>
using namespace std;
char ino[22],outo[22];
bool visited[22];
char result[222];
int n;
int main(){
    int i,j;
    stack<char > s;
    while(scanf("%d%s%s",&n,ino,outo)!=EOF){
        result[0] = \0;
        while(!s.empty()) s.pop();
        memset(visited,false,sizeof(visited));
        for(i=0,j=0;i<n;i++){
            if(!visited[outo[i]-0]){
                for(;j<n;j++){
                    visited[ino[j]-0] = true;
                    strcat(result,"in\n");
                    if(ino[j]==outo[i]) {
                        strcat(result,"out\n");
                        j++;
                        break;
                    }
                    s.push(ino[j]);
                }
            }
            else{
                if(s.top()==outo[i]){
                    s.pop();
                    strcat(result,"out\n");
                }
            }
        }
        if(s.empty())     printf("Yes.\n%sFINISH\n",result);
        else puts("No.\nFINISH");    
    }
    return 0;
} 

 

以上是关于hdu 1022 - 数据结构 栈的主要内容,如果未能解决你的问题,请参考以下文章

hdu1022 Train Problem I---模拟栈

HDU 1022 Train Problem I(栈的操作规则)

HDU 1022(火车过站 栈)

HDU 1022 Train Problem I (STL 栈模拟)

HDU 1022 (STL_D题)解题报告

HDU 1022 Train Problem I(stack)