当前位置: 首页 > news >正文

电子商务网站规书/疫情最新消息今天公布

电子商务网站规书,疫情最新消息今天公布,南京网站建设一条龙,wordpress轻量化主题剑指Offer - 九度1366 - 栈的压入、弹出序列2014-02-05 20:41 题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序&#xff0c…
剑指Offer - 九度1366 - 栈的压入、弹出序列
2014-02-05 20:41
题目描述:

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。

输入:

每个测试案例包括3行:

第一行为1个整数n(1<=n<=100000),表示序列的长度。

第二行包含n个整数,表示栈的压入顺序。

第三行包含n个整数,表示栈的弹出顺序。

输出:

对应每个测试案例,如果第二个序列是第一个序列的弹出序列输出Yes,否则输出No。

样例输入:
5
1 2 3 4 5
4 5 3 2 1
5
1 2 3 4 5
4 3 5 1 2
样例输出:
Yes
No
题意分析:
  给定一个入栈的数列,判断给定的另一个数列是否可能是一个出栈序列。
  要做的第一件事,就是将a[1],a[2],...,a[n]和1,2,...,n进行映射。这样方便判断大小,找到一个判断先后顺序的参照标准。
  接下来,问题就转化成了:如果入栈序列为1,2,...,n,出栈顺序是否可能为a[1],a[2],...,a[n]?
  具体的思路请直接看代码,几个if分支的意思应该比较明确了。过程中需要一个栈来模拟入栈出栈过程。
  时间复杂度为O(n),空间复杂度也是O(n)。
 1 // 688864    zhuli19901106    1366    Accepted    点击此处查看所有case的执行结果    6504KB    916B    640MS
 2 // 201402012335
 3 #include <cstdio>
 4 #include <map>
 5 #include <stack>
 6 using namespace std;
 7 
 8 map<int, int> m2;
 9 stack<int> st;
10 const int MAXN = 100005;
11 int a[MAXN];
12 
13 int main()
14 {
15     int i, j, n;
16     int tmp;
17 
18     while (scanf("%d", &n) == 1) {
19         for (i = 0; i < n; ++i) {
20             scanf("%d", &tmp);
21             m2[tmp] = i;
22         }
23         for (i = 0; i < n; ++i) {
24             scanf("%d", &tmp);
25             a[i] = m2[tmp];
26         }
27 
28         i = j = 0;
29         while (j < n) {
30             if (a[j] == i) {
31                 ++i;
32                 ++j;
33             } else if (!st.empty() && st.top() == a[j]) {
34                 st.pop();
35                 ++j;
36             } else if (i < n) {
37                 st.push(i);
38                 ++i;
39             } else {
40                 break;
41             }
42         }
43         if (i == n && j == n && st.empty()) {
44             printf("Yes\n");
45         } else {
46             printf("No\n");
47         }
48 
49         while (!st.empty()) {
50             st.pop();
51         }
52         m2.clear();
53     }
54 
55     return 0;
56 }

 

转载于:https://www.cnblogs.com/zhuli19901106/p/3538417.html

http://www.jmfq.cn/news/4930417.html

相关文章:

  • 网站开发公司怎么能接到单子/网络营销策略有哪几种
  • 肇庆 网站建设 域联/推广赚钱一个2元
  • 邢台做移动网站价格表/找百度
  • 做网站多少宽带够/百度热搜榜
  • 19年做网站还能赚钱/软文营销常用的方式
  • 开发和发布网站的主要流程/企业建站系统模板
  • 百度手机模板网站/360收录入口
  • 广州企业网站设计方案/网络营销有哪些推广方法
  • 什么是网页和网站/百度店铺免费入驻
  • 珠海市网站开发公司电话/网站优化的主要内容
  • 网站上的用户注册怎么做的/制作电商网站
  • 网站建设组织/网站seo检测
  • 专做实习生招聘的网站/网站为什么要seo?
  • 怎样与知名网站做友情链接/百度快速排名化
  • 电子商务网站推广实训心得/整站排名优化公司
  • 淳安县建设局网站/怎样在百度上发布免费广告
  • 百度推广代理商名单/全网优化哪家好
  • 十里堡网站建设/seo软文推广
  • 沈阳app开发公司哪家好/河南网站优化公司哪家好
  • 网站开展营销的思路和方法/项目推广方案
  • 网站开发流程注意事项/佛山seo代理计费
  • flash做的小动画视频网站/友情链接你会回来感谢我
  • 网站开发证书要求/视频推广一条多少钱
  • 温州手机网站推广/网站建设公司业务
  • 绿色在线网站模板/品牌营销策划案例ppt
  • 网站建设app开发小程序开发/超链接友情外链查询
  • 网页qq邮箱打不开/河南网站seo靠谱
  • php网站建设制作服务/seo在线培训课程
  • 成都网站建设seo/培训机构加盟店排行榜
  • 东莞做网站 信科网络/百度官网认证免费