HDU1022 Train Problem I

简介:
题目地址: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,如需转载请自行联系原作者
目录
相关文章
codeforces 285C - Building Permutation
题目大意是有一个含n个数的数组,你可以通过+1或者-1的操作使得其中的数是1--n中的数,且没有重复的数。 既然是这样的题意,那么我就应该把原数组中的数尽量往他最接近1--n中的位置放,然后求差绝对值之和,但有多个数,怎么使他们和最小,这样就要对其进行排序了,直接按大小给它们安排好位置,然后计算。
38 0
|
Java
hdu 1022 Train Problem I【模拟出入栈】
hdu 1022 Train Problem I【模拟出入栈】
52 0
hdu 1022 Train Problem I【模拟出入栈】
|
图形学
hdu1086 You can Solve a Geometry Problem too(判断线段相交)
hdu1086 You can Solve a Geometry Problem too(判断线段相交)
77 0
HDOJ(HDU) 1898 Sempr == The Best Problem Solver?(水题、、、)
HDOJ(HDU) 1898 Sempr == The Best Problem Solver?(水题、、、)
130 0
|
机器学习/深度学习
【HDU 5572 An Easy Physics Problem】计算几何基础
2015上海区域赛现场赛第5题。 题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5572 题意:在平面上,已知圆(O, R),点B、A(均在圆外),向量V。
1043 0

热门文章

最新文章