博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU1022 Train Problem I
阅读量:5974 次
发布时间:2019-06-19

本文共 1181 字,大约阅读时间需要 3 分钟。

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1022
#include <iostream>
#include <string>
#include <stack>
#include <vector>
using namespace std;
string strIn,strOut;
stack<char> strTmp;//临时栈
vector<string> strInfo;
int main(int argc,char* argv[])
{
    int n,i,curPos;
    char ch;
    while(cin>>n)
    {
        cin>>strIn>>strOut;
        curPos = 0;//out指针
        while(!strTmp.empty())
        {
            strTmp.pop();
        }
        while(strInfo.size()!=0)
        {
            strInfo.pop_back();
        }
        for(i=0;i<strIn.length();++i)
        {
            if(strTmp.empty()==false)
            {//栈不空
                ch = strTmp.top();
                while(strOut[curPos]==ch&&(strTmp.empty()==false))
                {//相等,出栈
                    strTmp.pop();
                    strInfo.push_back("out");
                    curPos++;//当前指针后移
                    if(strTmp.empty())
                    {
                        break;
                    }
                    ch = strTmp.top();
                }
                strTmp.push(strIn[i]);
                strInfo.push_back("in");
            }
            else
            {//栈空
                    strTmp.push(strIn[i]);//入栈
                    strInfo.push_back("in");
            }
        }
        while(!strTmp.empty())
        {
            ch = strTmp.top();
            strInfo.push_back("out");
            if(ch!=strOut[curPos])
            {
                cout<<"No."<<endl;
                break;
            }
            strTmp.pop();
            curPos++;
        }
        if(strTmp.empty())
        {
            cout<<"Yes."<<endl;
            for(i=0;i<strInfo.size();++i)
            {
                cout<<strInfo[i]<<endl;
            }
        }
        cout<<"FINISH"<<endl;
    }
    return 0;
}
本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2008/01/06/1027870.html,如需转载请自行联系原作者
你可能感兴趣的文章
华为程序员:加6天班!加班费1.4万元!网友:我能加到它破产
查看>>
解读 JavaScript 之引擎、运行时和堆栈调用
查看>>
不得不懂系列(1)-Go语言protobuf快速上手
查看>>
版本控制系统git
查看>>
从月薪5k到5w的过来人 给大学生程序员们的一点建议
查看>>
Android开发之 .9PNG 的使用
查看>>
D2 日报 2019年5月8日
查看>>
武汉区块链软件技术公司:区块链和比特币
查看>>
学习笔记(3.27)
查看>>
ecshop ajax无刷新登陆_无需整理
查看>>
Android中隐藏标题栏和状态栏
查看>>
浅显c#连接数据库
查看>>
15. SQL -- 游标(实例)
查看>>
plsql9.0.6.1665版本注册码
查看>>
Linux入门基础之grep命令详解及正则表达式
查看>>
Git 分布式版本控制 实战
查看>>
Linux之Find命令详解
查看>>
crysis2 video&cryengine3 editor show
查看>>
数据挖掘 numpy之数组定义
查看>>
Hibernate学习之SessionFactory的opensession 和 getCu...
查看>>