zoukankan      html  css  js  c++  java
  • HDU

    给定一个火车的入站顺序,问是否可能以规定的顺序出站。

    背景实际上是卡特兰数。

    可以联想到用栈和队列来模拟这一过程。

    如果进栈的过程中发现和队首相同就让他出栈。

    string s1, s2;
    
    int main() {
        int n;
        while (cin >> n) {
            cin >> s1 >> s2;
            stack<int> s;
            queue<int> q;
            vector<int> ans;
            for (int i = 0; i < n; i++) q.push(s2[i] - '0');
            for (int i = 0; i < n; i++) {
                s.push(s1[i] - '0');
                if (!q.empty() && q.front() == s.top()) {
                    ans.push_back(0);
                    while (!q.empty() && !s.empty() && q.front() == s.top())  ans.push_back(1), q.pop(), s.pop();
                }
                else ans.push_back(0);
            }
            if (!s.empty()) {
                puts("No.");
                puts("FINISH");
            }
            else {
                puts("Yes.");
                for (int i = 0; i < ans.size(); i++) if (ans[i]) puts("out"); else puts("in");
                puts("FINISH");
            }
        }
    }
  • 相关阅读:
    flask-scripts
    mysql相关
    day9:函数
    day8:文件操作
    day7:set和深浅copy
    day6:前两小节补充
    day5:字典dict
    day4:数据结构list
    piano class 13
    day3:数据类型 str
  • 原文地址:https://www.cnblogs.com/hznumqf/p/13525760.html
Copyright © 2011-2022 走看看