hdu 火车入队 stack

  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <stack>
  4. #include <string>
  5. #include <string.h>
  6. using namespace std;
  7. int main()
  8. {
  9. int n;
  10. //string in,out;
  11. char in[1000],out[1000];
  12. while(cin>>n>>in>>out)
  13. {
  14. //stack<char> s;
  15. char s[1000];
  16. memset(s,‘\0‘,sizeof(s) );
  17. int mark[20];
  18. int i=0,j=0;
  19. int count=0;
  20. while(i<n)
  21. {
  22. //if(s.empty() )
  23. if(strlen(s)==0)
  24. {
  25. //s.push(in[i]);
  26. s[count++]=in[i];
  27. mark[i+j]=0;
  28. i++;
  29. }
  30. //if(!s.empty() && s.top()!=out[j] )
  31. if(strlen(s)!=0 && s[strlen(s)]!=out[j] )
  32. {
  33. //s.push(in[i]);
  34. s[count++]=in[i];
  35. mark[i+j]=0;
  36. i++;
  37. }
  38. //while(!s.empty() &&s.top() ==out[j] )
  39. while(strlen(s)!=0 && s[strlen(s)-1]==out[j] )
  40. {
  41. //s.pop();
  42. s[strlen(s)-1]=‘\0‘;
  43. mark[i+j]=1;
  44. j++;
  45. }
  46. }
  47. //if( s.empty() )
  48. if(strlen(s)==0 )
  49. {
  50. cout<<"Yes."<<endl;
  51. for(int i=0;i<2*n;i++)
  52. {
  53. if(mark[i]==0)
  54. cout<<"in"<<endl;
  55. else
  56. cout<<"out"<<endl;
  57. }
  58. cout<<"FINISH"<<endl;
  59. }
  60. else
  61. cout<<"No."<<endl<<"FINISH"<<endl;
  62. }
  63. return 0;
  64. }

来自为知笔记(Wiz)

附件列表

时间: 2024-11-17 05:27:31

hdu 火车入队 stack的相关文章

JS魔法堂:jQuery.Deferred(jQuery1.5-2.1)源码剖析

一.前言 jQuery.Deferred作为1.5的新特性出现在jQuery上,而jQuery.ajax函数也做了相应的调整.因此我们能如下的使用xhr请求调用,并实现事件处理函数晚绑定. var promise = $.getJSON('dummy.js') // 其他逻辑处理 promise.then(function(){ alert('late binding') }) 我还一度以为这就是Promises/A+规范的实现,但其实jQuery.Deferred应该与jsDeferred归为

【华为OJ】【072-火车进站】

[华为OJ][算法总篇章] [华为OJ][072-火车进站] [工程下载] 题目描述 给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车, 每辆火车以数字1-9编号.要求以字典序排序输出火车出站的序列号 思路: 此处所谓字典序排序的意思是这n辆火车有多少种出站的可能顺序(也就是数据结构中的栈有多少种出栈顺序). 思路为用三个变量分别存储待进站火车,站中火车和已出站火车,其中待进站火车用Queue(队列)存储和站中 火车采用stack(栈)存储,已出站火车采用St

【c++】使用两个栈实现一个队列(详细介绍)

使用两个栈实现一个队列 思路一: 我们设定s1是入栈的,s2是出栈的. 入队列,直接压到s1即可 出队列,先把s1中的元素倒入到s2中,弹出s2中的栈顶元素:再把s2的剩余元素全部倒回s1中. 缺点: 每次只要出栈一个元素就要将元素倒来倒去,麻烦!!! 思路2: 入队列时:如果s1为空,把s2中所有的元素倒出压到s1中.否则直接压入s1 出队列时:如果s2不为空,把s2中的栈顶元素直接弹出.否则,把s1的所有元素全部弹出压入s2中,再弹出s2的栈顶元素 思路1无条件地每次都要将元素倒来倒去,思路

(hdu)1022 Train Problem I 火车进站问题

题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1022 Problem Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of student want to get back to school by train(because the trains in the Ignatius Train Stati

HDU 1072 (不一样的入队条件) Nightmare

之前的BFS都是需要一个标记数组,但这个题不一样,因为可能一个格子不止走一次. 那么我们就要寻找新的入队条件:left比上次经过的时候大才入队(left表示上次经过该点时剩余的时间). 为什么呢?我们重复走过一个点只有一个可能,那就是为了去取那个,所以如果取完后再回头经过这个点的时候剩余时间变多了,我们的目的就达到了. left数组初值为0 优化: 重置时间的装置最多取一次就够了,所以可以再开一个标记数组vis记录装置是否用过. 1 //#define LOCAL 2 #include <cst

HDU 5818:Joint Stacks(stack + deque)

http://acm.hdu.edu.cn/showproblem.php?pid=5818 Joint Stacks Problem Description A stack is a data structure in which all insertions and deletions of entries are made at one end, called the "top" of the stack. The last entry which is inserted is

HDU 1022 Train Problem I stack 基础题

题意: 有一个火车站,只有一个口同时用于进入和出去,但不能有2辆或以上同时进出. 给出一个n代表有n辆火车(n<=9),编号分别为1到n. 然后给出2个序列,分别代表火车进站的顺序,火车出站的顺序. 问按照这个进站的顺序,能不能按照这个出站的顺序出站. 若能,输出这个口进出的顺序. Sample Input 3 123 321 3 123 312 Sample Output Yes. in in in out out out FINISH No. FINISH 直接用stack进行模拟就OK了.

hdu 1022火车进出站问题

Problem Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of student want to get back to school by train(because the trains in the Ignatius Train Station is the fastest all over the world ^v^). But here comes

HDU 1022(火车过站 栈)

题意是给定火车进站的序列和出站的序列,问能否完成转换,若能输出过程. 和另一道以火车进站为背景的栈应用题类似,但增加了对于过程的输出,只需要多记录一下进出站顺序即可. 1 #include <bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 std::ios::sync_with_stdio(false); 6 int n,pos,cnt,vis[1000]; 7 stack<char> q; 8 char come[