★实验任务

一天,小 L 发现了一台支持一下操作的机器:

IN x:将整数 x 入栈

POP:将栈顶元素出栈

ASUB:出栈两个数,将两数差的绝对值入栈

COPY:将栈顶元素(如果有的话)复制一份,入栈

现在小 L 想知道经过给定的 n 次操作之后,栈内所有元素之和是多少。

Notice:这台机器会自动忽略不合法的操作

★数据输入

第一行一个正整数 n,表示有 n 次操作。

接下来有 n 行,每行一个操作。

0<=n<=1000, 0<=x<=1000

★数据输出

输出这台机器在 n 次操作后,栈内所有元素之和。

★样例

输入示例 输出示例
4
IN 10
IN 11
ASUB
COPY
2

★思路

栈的基本操作

只需要注意这台机器会自动忽略不合法的操作

★Code


  1. #include<iostream>
  2. #include<math.h>
  3. #include<stack>
  4. using namespace std;
  5. int main()
  6. {
  7. int n=0,i=0,temp1=0,temp2=0,temp3=0,temp4=0,sum=0,flag=0;
  8. char str[5]={0};
  9. stack<int>s;
  10. cin>>n;
  11. for(i=0;i<n;i++)
  12. {
  13. cin>>str;
  14. if(str[0]=='I')
  15. {
  16. cin>>temp1;
  17. s.push(temp1);
  18. temp1=0;
  19. }
  20. else if(str[0]=='P')
  21. {
  22. if(s.empty())
  23. {
  24. continue;
  25. }
  26. else
  27. {
  28. s.pop();
  29. }
  30. }
  31. else if(str[0]=='A')
  32. {
  33. if(s.size()<2)
  34. {
  35. continue;
  36. }
  37. else
  38. {
  39. temp2=s.top();
  40. s.pop();
  41. temp3=s.top();
  42. s.pop();
  43. s.push(abs(temp2-temp3));
  44. temp2=0;
  45. temp3=0;
  46. }
  47. }
  48. else if(str[0]=='C')
  49. {
  50. if(s.empty())
  51. {
  52. continue;
  53. }
  54. else
  55. {
  56. temp4=s.top();
  57. s.push(temp4);
  58. temp4=0;
  59. }
  60. }
  61. else
  62. continue;
  63. }
  64. flag=s.size();
  65. for(i=0;i<flag;i++)
  66. {
  67. sum+=s.top();
  68. s.pop();
  69. }
  70. cout<<sum<<endl;
  71. return 0;
  72. }

算法与数据结构3.1 stack的更多相关文章

  1. 算法与数据结构基础 - 堆栈(Stack)

    堆栈基础 堆栈(stack)具有“后进先出”的特性,利用这个特性我们可以用堆栈来解决这样一类问题:后续的输入会影响到前面的阶段性结果.线性地遍历输入并用stack处理,这类问题较简单,求解时间复杂度一 ...

  2. 算法与数据结构基础 - 二叉树(Binary Tree)

    二叉树基础 满足这样性质的树称为二叉树:空树或节点最多有两个子树,称为左子树.右子树, 左右子树节点同样最多有两个子树. 二叉树是递归定义的,因而常用递归/DFS的思想处理二叉树相关问题,例如Leet ...

  3. 使用python解决算法和数据结构--使用栈实现进制转换

    可以将10进制数据转换成2进制,8进制,16进制等. 晚上练练算法和数据结构哈. # coding = utf-8 class Stack: def __init__(self): self.item ...

  4. 算法与数据结构基础 - 哈希表(Hash Table)

    Hash Table基础 哈希表(Hash Table)是常用的数据结构,其运用哈希函数(hash function)实现映射,内部使用开放定址.拉链法等方式解决哈希冲突,使得读写时间复杂度平均为O( ...

  5. 算法与数据结构基础 - 深度优先搜索(DFS)

    DFS基础 深度优先搜索(Depth First Search)是一种搜索思路,相比广度优先搜索(BFS),DFS对每一个分枝路径深入到不能再深入为止,其应用于树/图的遍历.嵌套关系处理.回溯等,可以 ...

  6. 浅谈算法和数据结构: 七 二叉查找树 八 平衡查找树之2-3树 九 平衡查找树之红黑树 十 平衡查找树之B树

    http://www.cnblogs.com/yangecnu/p/Introduce-Binary-Search-Tree.html 前文介绍了符号表的两种实现,无序链表和有序数组,无序链表在插入的 ...

  7. python 下的数据结构与算法---2:大O符号与常用算法和数据结构的复杂度速查表

    目录: 一:大O记法 二:各函数高阶比较 三:常用算法和数据结构的复杂度速查表 四:常见的logn是怎么来的 一:大O记法 算法复杂度记法有很多种,其中最常用的就是Big O notation(大O记 ...

  8. LeetCode_算法及数据结构覆盖统计

    [输入]共计151道题的算法&数据结构基础数据 (见附录A) [输出-算法]其中有算法记录的共计 97道 ,统计后 结果如下  top3(递归,动态规划,回溯) 递归 动态规划 回溯 BFS ...

  9. JavaScript算法与数据结构知识点记录

    JavaScript算法与数据结构知识点记录 zhanweifu

随机推荐

  1. 安装psutil时提示缺少python.h头文件(作记录)

    通过pip或者源码安装psutil,都会提示缺少python.h头文件,错误提示如下: ... psutil/_psutil_common.c:9:20: fatal error: Python.h: ...

  2. 纯js轮播图练习-2,js+css旋转木马层叠轮播

    基于css3的新属性,加上js的操作,让现在js轮播图花样越来越多. 而现在出现的旋转木马层叠轮播的轮播图样式,却是得到了很多人都喜爱和投入使用. 尤其是在各大软件中,频繁的出现在大家的眼里,在web ...

  3. h5跳转到app的实现

    随着业务的增加,可能存在这么一种需求,就是需要从h5中直接跳转到app.如果没有安装app的话,则提示到应用市场或者app store下载安装.不过问题就在这个地方,单纯的用h5是没有方法判断是否安装 ...

  4. Cab 安装不成功问题

    使用 iexpress.exe 成功打包了cab文件. 可下面问题来了,用静态的html调用,提示安装. 确认安装之后,却提示找不到相应的*.ocx,导致无法安装文件到系统 分析具体原因:*.ocx ...

  5. ElasticSearch 集群安装,简单使用

    http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html https://gith ...

  6. python学习——模块和包

    在之前常用模块中我们已经初步了解了模块的导入,今天来说学习一下模块和包.我们可以把模块理解成每一个python文件.而包就是多个能解决一类问题的python文件全部放在一起.OK

  7. C 二维数组,以及自定义二维数组

    C 二维数组,以及自定义二维数组 我们通常情况下是这样定义一个二维数组的: int a[10][15]; 我们分别查看一下a,a[0],*a 都是一样的值吧 我们可以这么理解: a是一个数组的数组 a ...

  8. C# 面试题 (二)

    1. 什么是C#? C#是微软公司发布的一种面向对象的.运行于.NET Framework之上的高级程序设计语言.C#是一种安全的.稳定的.简单的.优雅的,由C和C++衍生出来的面向对象的编程语言. ...

  9. Address already in use: JVM_Bind,tomcat启动异常

    严重: StandardServer.await: create[8050]: java.net.BindException: Address already in use: JVM_Bind tom ...

  10. web项目由简入繁

    1.MVC--[javaBean+接口+jdbc+servlet+jsp] 用javaBean做数据模型, 数据操作放到DAO层 前端页面展示由JSP完成 页面跳转由servlet完成,页面数据传递用 ...