lanqiao OJ 拉马车

简介: lanqiao OJ 拉马车

stack 和 queue 的模拟题

#include<iostream>
#include<cstring>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
using namespace std ;
string s1,s2 ;
queue<char> a,b ;
stack<char> s ;
int o ;
int check[1000] ;
int main(){
  cin >> s1 >> s2 ;
  for(int i = 0 ; i < s1.size() ; i ++) a.push(s1[i]) ;
  for(int i = 0 ; i < s2.size() ; i ++) b.push(s2[i]) ;
  o = 1 ;
  while(!a.empty() && !b.empty()){
    if(o==1){
      s.push(a.front()) ;
      a.pop() ;
      if(check[s.top()]){
        char tmp = s.top() ;
        a.push(s.top()) ;
        s.pop() ;
        while( s.top()!=tmp){
          a.push(s.top()) ;
          check[s.top()]=0;
          s.pop() ;
        }
        o = 1 ;
        a.push(tmp);
                check[tmp]=0; 
                s.pop() ;
      }else {
        check[s.top()] = 1 ;
        o = 2 ;
      }
      
    }
    else{
      
      s.push(b.front()) ;
      b.pop() ;
      if(check[s.top()]){
        char tmp = s.top() ;
        b.push(tmp) ;
        s.pop() ;
        while( s.top()!=tmp){
          b.push(s.top()) ;
          check[s.top()]=0;
           b.pop() ;
        }
         b.push(tmp);
                check[tmp]=0; 
                s.pop() ;
        o = 2 ;
      }else {
        check[s.top()] = 1 ;
        o = 1 ;
      }
    }
  }
  while(!a.empty()){
    cout << a.front() ;
    a.pop() ;
  }
  while(!b.empty()){
    cout << b.front() ;
    b.pop() ;
  }
}
目录
相关文章
|
3天前
lanqiao OJ 1505 剪邮票
lanqiao OJ 1505 剪邮票
10 0
|
3天前
lanqiao OJ 182 小朋友崇拜圈
lanqiao OJ 182 小朋友崇拜圈
11 2
|
3天前
lanqiao OJ 89 路径之谜
lanqiao OJ 89 路径之谜
8 1
|
1天前
lanqiao oj 1122 蓝桥王国
lanqiao oj 1122 蓝桥王国
5 0
|
3天前
|
机器人
lanqiao OJ 118 机器人塔
lanqiao OJ 118 机器人塔
6 0
|
2天前
|
BI
lanqiao OJ 蜗牛
lanqiao OJ 蜗牛
7 0
|
5月前
|
Go
golang力扣leetcode 417.太平洋大西洋水流问题
golang力扣leetcode 417.太平洋大西洋水流问题
40 0
|
5月前
|
存储
蓝桥备战:四元组问题(蓝桥OJ 3416)
蓝桥备战:四元组问题(蓝桥OJ 3416)
52 0
|
5月前
蓝桥备战--纪念品分组OJ532,贪心证明
蓝桥备战--纪念品分组OJ532,贪心证明
25 0
|
测试技术
蓝桥 晚会节目单 (线段树)
蓝桥 晚会节目单 (线段树)