考研复试机试 | C++ | 王道机试课程笔记
目录
- Zero-complexity (上交复试题)
- 题目:
- 代码:
- 括号匹配问题
- 题目:
- 代码:
- 表达式解析问题 (浙大机试题)
- 题目:
- 代码:
标准库里提供了栈
stack<typename> myStack
.size() 栈的大小
.push() 压栈
.top() 获取栈顶元素
.pop() 弹栈
.empty()判断栈是否为空
整数的数据类型

Zero-complexity (上交复试题)
题目:
You are given a sequence of integer numbers. Zero-complexity transposition of the sequence is the reverse of this sequence. Your task is to write a program that prints zero-complexity transposition of the given sequence.
输入描述:
For each case, the first line of the input file contains one integer n-length of the sequence (0 < n ≤ 10 000). The second line contains n integers numbers-a1, a2, …, an (-1 000 000 000 000 000 ≤ ai ≤ 1 000 000 000 000 000).
输出描述:
For each case, on the first line of the output file print the sequence in the reverse order.
示例1
输入
5
-3 4 6 -8 9
输出
9 -8 6 4 -3
代码:
#include <stack>
#include <cstdio>using namespace std;int main(){// 题目中介绍的数据范围大概是10的15次方,int不可以用 stack <long long> myStack;int n;long long num;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%lld",&num); //%lld 读取long long类型的六进制数myStack.push(num);}while(!myStack.empty()){printf("%lld ",myStack.top());myStack.pop(); }printf("\n");
}
读取字符串的操作


括号匹配问题
题目:

代码:
#include <stack>
#include <cstdio>
#include <string> using namespace std;int main(){char buf[200];while(fgets(buf,200,stdin)!=NULL){// fgets配合while实现不确定数量的多行读取string str = buf; //转化为C++风格的字符串 str.pop_back(); // str去掉了额外的换行stack<unsigned> indexStack; // 存储了左括号的下标string res;//保存输出的结果for(unsigned i=0;i<str.size();i++){// 如果是左括号 if(str[i] == '('){indexStack.push(i);// 姑且认为左括号非法res.push_back('$'); }// 如果是右括号 else if(str[i] == ')'){// 此时栈中没有左括号 非法 if(indexStack.empty()){res.push_back('?');}else{// 如果合法,栈顶原来左括号下标弹出,res原左括号的值改为空格 res.push_back(' ');res[indexStack.top()] = ' ';indexStack.pop(); }}// 如果是字母 else{res.push_back(' ');} } // 输出 printf("%s\n%s\n",str.c_str(),res.c_str()); }
}
表达式解析问题 (浙大机试题)
题目:
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
输入描述:
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
输出描述:
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
示例1
输入:
1 + 2
4 + 2 * 5 - 7 / 11
0
输出:
3.00
13.36
代码:
#include <stack>
#include <cstdio>
#include <string>
#include <map> using namespace std;int main(){char buf[300];// 设置字符的优先级 map<char,int> priority = {{'$',0},{'+',1},{'-',1},{'*',2},{'/',2},};while(fgets(buf,300,stdin)!=NULL){string expr = buf;expr.pop_back(); //删除末尾的换行符 if(expr == "0") break;expr.push_back('$'); //补充一个虚拟的终止符string num; stack<double> numstack; // 数字栈 stack<char> operstack; // 运算符栈 // 扫描每个表达式中的字符 for(unsigned i=0;i<expr.size();i++){// 扫描到数字 if(expr[i] >= '0' && expr[i] <= '9'){num.push_back(expr[i]);}// 如果扫描到空格else if(expr[i] == ' '){if(num!=""){numstack.push(stod(num)); // stod --> string to doublenum = ""; // num置空 }}// 扫描到运算符 else{if(expr[i] == '$'){if(num!=""){numstack.push(stod(num)); // stod --> string to doublenum = ""; // num置空 }}while(!operstack.empty()&&priority[operstack.top()] >= priority[expr[i]]){// 新来的运算符的优先级不高于栈顶的优先级 char oper = operstack.top();operstack.pop();double rhs = numstack.top();numstack.pop(); double lhs = numstack.top();numstack.pop();switch(oper){case '+':numstack.push(lhs+rhs);break;case '-':numstack.push(lhs-rhs);break;case '*':numstack.push(lhs*rhs);break;case '/':numstack.push(lhs/rhs);break;} }//所有比expr[i]优先级更高的运算符都计算过了 // 接下来吧这个高优先级的运算符入栈operstack.push(expr[i]); } } // 所有的计算都结束了,此时数字栈中存放的是最终结果 printf("%.2f\n",numstack.top()); }
}
相关文章:
考研复试机试 | C++ | 王道机试课程笔记
目录Zero-complexity (上交复试题)题目:代码:括号匹配问题题目:代码:表达式解析问题 (浙大机试题)题目:代码:标准库里提供了栈 stack<typename> myStack .size() 栈的大小 .pu…...
【python科目一:生产线系统设计;激光刀切割材料】
工厂有若干条生产线,可以生产不同型号的产品,要求实现功能如下:1. ProductionLineMgmtSys 初始化生产线和产品的生产周期有num条生产线,编号从0开始periods[i]表示生产一个型号为i的产品所需的生产周期,单位为天2. Pro…...
Linux——进程概念(进程状态)
目录 进程状态 三态模型 五态模型 七态模型 Example eg1:阻塞态:等待某种资源的过程 eg2:挂起态 Linux内核源代码 Linux进程状态查看 Linux运行状态 R运行状态(running): S睡眠状态(sleeping): D磁盘休眠状…...
超详细:正则表达式从入门到入门
文章目录匹配字符\d \D\s \S量词:匹配多个字符星号*加号问号?大括号{}集合字符[]明确字符范围字符补集字符常见字符集贪婪模式和非贪婪模式匹配开头和结尾贪婪模式和非贪婪模式常用函数re.findall()re.search()re.compile()re.split()re.sub()本文章首发…...
jupyter notebook小技巧
1、.ipynb 文件转word文档 将 jupyter notebook(.ipynb 文件)转换为 word 文件(.docx)的最简单方法是使用 pandoc。 首先安装pip install pandoc, 安装后,在将 Jupyter notebook文件目录cmd 然后输入打开…...
考研复试机试 | c++ | 王道复试班
目录n的阶乘 (清华上机)题目描述代码汉诺塔问题题目:代码:Fibonacci数列 (上交复试)题目代码:二叉树:题目:代码:n的阶乘 (清华上机) …...
js闭包简单理解
js里面的闭包是一个难点也是它的一个特色,是我们必须掌握的js高级特性,那么什么是闭包呢?它又有什么作用呢? 1,提到闭包我们这里先讲解一下js作用域的问题 js的作用域分两种,全局和局部,基于我…...
「JVM 编译优化」编译器优化技术
后端编译(即时编译、提前编译)的目标时将字节码翻译成本地机器码,而难点是输出优化质量较高的机器码; 文章目录1. 优化技术概览2. 方法内联(Inlining)3. 逃逸分析(Escape Analysis)4…...
回溯问题(子集型回溯、组合型回溯、排列型回溯)【零神基础精讲】
来源0x3f:https://space.bilibili.com/206214 回溯分为【子集型回溯】【组合型回溯】【排列型回溯】 文章目录回溯基本概念[17. 电话号码的字母组合](https://leetcode.cn/problems/letter-combinations-of-a-phone-number/)子集型回溯(分割问题也可以看…...
源代码配置安装Apache
源代码配置安装Apache 📒博客主页: 微笑的段嘉许博客主页 💻微信公众号:微笑的段嘉许 🎉欢迎关注🔎点赞👍收藏⭐留言📝 📌本文由微笑的段嘉许原创! …...
css水平垂直居中各种方法实现方式
不定宽高水平垂直居中? 面试题回答方式: 通过display:flex;justify-content:center; align-items:center;就可以让子元素不定宽高水平垂直居中 也可以父display:flex;,子设置一个margin&#…...
PowerShell Install java 13
java 前言 Java具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C语言的形式和感觉,但它要比C语言更易于使用,而且在编程时彻底采用了一种以对象为导向的方式。 java download javadownloadPowersh…...
Python的PyQt框架的使用(汇总)
Python的PyQt框架的使用一、前言二、安装PyQt三、使用第三方开发工具四 、创建主窗体五、常用控件篇1.QLineEdit 文本框2.QPushButton按钮控件3.QRadioButton 单选按钮六、布局管理篇1.通过布局管理器布局2.绝对布局七、信号与槽的关联1.编辑信号/槽2.信号/槽编辑器八、资源文件…...
力扣热题100Day05:15.三数之和,17. 电话号码的字母组合,19. 删除链表的倒数第 N 个结点
15.三数之和 题目链接:15. 三数之和 - 力扣(Leetcode) 思路: (1)双指针,在外层for循环里加入两个指针,left和right (2)排序:为了更好地进行去…...
探索开源:获取完整的 GitHub 社区数据集
本篇文章聊聊 GitHub 开放数据集的获取和整理,分享一些数据整理的细节技巧,以及一些相对粗浅的数据背后的事情。 写在前面 分析 GitHub 上的项目和开发者获取是深入、真实的了解开源世界演进的方法之一。 在 GHArchive 项目中,我们能够看到…...
github ssh密钥配置,克隆远程仓库
GitHub的SSH配置 在往github上push项目的时候,如果走https的方式,每次都需要输入账号密码,非常麻烦。而采用ssh的方式,就不再需要输入,只需要在github自己账号下配置一个ssh key即可! 很多朋友在用github管…...
突破年薪百万难关!吃透这套Java真题合集
前言我相信大多 Java 开发的程序员或多或少经历过BAT一些大厂的面试,也清楚一线互联网大厂 Java 面试是有一定难度的,小编经历过多次面试,有满意的也有备受打击的。因此呢小编想把自己这么多次面试经历以及近期的面试真题来个汇总分析&#x…...
[黑马程序员SSM框架教程] Spring-11-setter注入
思考:向一个类中传递数据要几种? set方法构造方法 思考:依赖注入描述了在容器中建立bean与bean之间依赖关系的过程,如果bean运行需要数字或字符呢 引用类型简单类型(基本数据类型和字符串) 注入方式&#x…...
Java多线程(一)--多线程基础知识
1. 为什么要使用并发编程提升多核CPU的利用率:一般来说一台主机上的会有多个CPU核心,我们可以创建多个线程,理论上讲操作系统可以将多个线程分配给不同的CPU去执行,每个CPU执行一个线程,这样就提高了CPU的使用效率&…...
AutoDock, AutoDock-vina等对接工具安装
AutoDock, AutoDock-vina等对接工具安装 AutoDock-GPU安装 下载地址: https://autodock.scripps.edu/downloads/ 将压缩包传送至安装目录中,并解压到当前路径 unzip AutoDock-GPU-develop.zip 找到服务器的cuda的路径,cuda的路径一般默认…...
从主题到视频:Pixelle-Video如何用AI重构你的内容创作流程
从主题到视频:Pixelle-Video如何用AI重构你的内容创作流程 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video 想象一下…...
终极指南:如何简单快速地解锁艾尔登法环帧率限制并优化游戏体验
终极指南:如何简单快速地解锁艾尔登法环帧率限制并优化游戏体验 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirro…...
3个技巧掌握跨平台资源下载神器:如何轻松获取微信视频号、抖音无水印内容?
3个技巧掌握跨平台资源下载神器:如何轻松获取微信视频号、抖音无水印内容? 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/…...
从备份到部署:用Clonezilla为网吧/机房批量克隆系统镜像的实战流程
从备份到部署:用Clonezilla为网吧/机房批量克隆系统镜像的实战流程在网吧、学校机房或企业IT部门中,面对数十台甚至上百台配置相同的计算机,如何高效完成系统部署和环境统一?传统逐台安装的方式不仅耗时费力,还难以保证…...
别急着买云服务器!手把手教你用闲置Win10电脑搭建个人SSH服务器(保姆级教程)
闲置Win10变身SSH服务器:零成本打造远程开发环境家里那台吃灰的旧电脑,其实藏着个免费云服务器——这话听起来像天方夜谭?去年我用一台2015年的联想笔记本搭建的SSH服务器,至今稳定运行着三个Python爬虫和两个测试项目。下面这套方…...
Shannon AI:面向业务流的自动化渗透测试工具
1. 这不是“AI替代人”,而是把渗透测试工程师从重复劳动里解救出来我第一次在客户现场用Shannon AI跑完Juice Shop靶场,盯着终端里滚动的日志,心里想的不是“哇这工具真快”,而是“原来我过去三年有将近200小时,都花在…...
XLASSO:高维稀疏建模在极端事件尾部预测中的原理与实践
1. 项目概述:当极端事件遇见高维稀疏性在金融风险管理、气候极端事件预测或是网络流量异常检测中,我们常常面临一个共同的挑战:如何基于有限的历史极端观测数据,对未来可能发生的、更为罕见的“黑天鹅”事件做出可靠预测ÿ…...
告别SystemTap:为什么Linux内核开发者更偏爱ftrace?从原理到实战对比
告别SystemTap:为什么Linux内核开发者更偏爱ftrace?从原理到实战对比在Linux内核开发与性能优化领域,调试工具的选型往往决定了问题排查的效率与系统稳定性。当面对偶发的调度延迟或难以复现的内核异常时,开发人员需要在低开销、高…...
Unity InputField组件避坑指南:从登录框到聊天室,这8个属性配置错了真头疼
Unity InputField组件深度避坑手册:从基础配置到高阶实战在Unity项目开发中,InputField组件看似简单却暗藏玄机。许多开发者都曾遇到过这样的场景:明明按照文档配置了所有属性,运行时却出现虚拟键盘遮挡输入框、密码输入时光标消失…...
量子机器学习提升软件测试效率的混合优化框架
1. 量子机器学习如何革新软件测试效率在DevOps和敏捷开发成为主流的今天,软件测试面临着前所未有的挑战。传统测试方法在应对现代复杂系统时显得力不从心——根据行业调研,大型系统中测试环节消耗的开发资源高达40-50%。更棘手的是,随着微服务…...
