网易游戏编程第二题-------表达式求值

2024.6.20网易互娱游戏开发笔试题目 阅读详情

题目:

给定一个表达式,该表达式由以下规则生成:

1.“0”和“1”是合法表达式;

2.如果x是一个合法表达式,那么“(!x)”是一个合法表达式;

3.如果x和y是合法表达式,那么“(x|y)”和“(x&y)”都是一个合法表达式;

其中,!是逻辑非操作符,|和&分别是与运算符和或运算符,给定一个合法表达式,求该表达式最终的值。

 

输入描述:

第一行是一个整数T(T<=20)。接下来T行,每一行是一个合法表达式。表达式不含空格,且输入保证该表达式是一个合法表达式。

对于30%的数据,表达式的长度不超过500;对于100%的数据,表达式的长度不超过150000。

 

输出描述:

T行,每一行表示相应表达式的值。

 

示例:

 

输入:

3

(!0)

(0|(1&0))

(0|(1&(!0)))

 

输出:

1

0

1

 

思路:创建两个栈,每当遇到非数字字符时,除了符号')',全部压入第一个栈中,当遇到数字时,压入第二个栈;当遇到符号')'时,则从第二个栈中弹出栈顶数字,第一个栈弹出符号,直到第一个栈弹出的是符号'('为止,则退出这轮计算,最后把计算结果压入第二个数字栈中,以备下次继续计算。

 

代码:

#include <iostream>
#include <stack>
#include <assert.h>
using namespace std;


//注意:这个代码的运行前提条件是这个表达式合法,这里根据测试用例测试,就不多加考虑
int Count_Number(char * str)
{
	//断言,str为合法字符串
	assert(str != NULL);
	//创建两个辅助栈
	stack<char> stack1;
	stack<char> stack2;
	char tmp1;//用于保存stack1弹出的符号
	int a,b;//用于保存stack2弹出的数字,并保存最后结果
	while(*str != '\0')
	{
		if(*str == '(' || *str == '!' || *str == '&' || *str == '|')
		{
			stack1.push(*str);//遇到以上符号,压入stack1中
		}
		else if(*str == '0' || *str  == '1')
		{
			stack2.push((*str-'0'));//遇到1到9的数字压入stack2中
		}
		else if(*str == ')')//遇到')'进行栈内数据和符号计算
		{
			tmp1 = stack1.top();
			stack1.pop();
			a = stack2.top();
			stack2.pop();
			while(tmp1 != '(')
			{
				if(tmp1 == '|')
				{
					b = stack2.top();
					stack2.pop();
					a = a|b;
				}
				else if(tmp1 == '&')
				{
					b = stack2.top();
					stack2.pop();
					a = a&b;
				}
				else if(tmp1 == '!')
				{
					a = !a;
				}
				tmp1 = stack1.top();
				stack1.pop();
			}
			stack2.push(a);//将这一次的计算结果压入数字栈stack2中,以备下次继续计算
			
		}
		str++;
	}
	return (stack2.top());
}

int main()
{
	//测试用例:
	cout<<"请输入表达式的个数::"<<endl;
	int num;
	cin>>num;
	char ** p = (char**)malloc(sizeof(char*)*num);
	cout<<"请输入表达式:"<<endl;
	for(int i = 0; i<num; i++)
	{
		p[i] = (char*)malloc(sizeof(char)*150000);
		cin>>p[i];
	//	cout<<endl;
	}
	cout<<"结果:"<<endl;
	for(int i = 0; i<num; i++)
	{
		cout<<Count_Number(p[i])<<endl;
	}
	return 0;
}

 

 

 

 

网易C++校招笔试备考指南:题型解析与高频考点精讲 在C++开发工程师的校招笔试中,扎实的语言基础和系统化的知识框架是脱颖而出的关键。从内存管理、STL底层原理到多线程并发控制,C++八股文考察的不仅是概念记忆,更是对编译链接、对象生命周期及运行期行为的深度理解。同时,设计模式与回调函数等工程化知识,往往以场景嵌入方式出现在选择题中,考验候选人的技术决策能力。掌握这些核心知识点的原理与应用场景,配合算法题的实战演练,能够有效应对大厂笔试中的综合体检。本文结合网易C++笔试的典型题型,拆解高频考点与备考策略,帮助求职者构建完整的复习路径,从容应对从基础八股到工 阅读详情

相关推荐

网易校招C卷考点详解:C语言指针、内存与算法全攻破

C语言作为嵌入式开发与系统编程的基石,其核心概念如指针、内存管理和结构体内存对齐,常成为大厂校招笔试中筛选人才的关键。理解sizeof的编译期求值规则、函数指针的声明解析以及宏展开的文本替换陷阱,不仅是应对面试的基础,更是编写高效底层代码的前提。在技术笔试准备中,掌握链表反转的迭代与递归实现、二叉树的层序队列遍历、冒泡排序的边界优化等算法细节,能显著提升代码的严谨性。从内存分区到进程线程模型,从死锁条件到Linux排查命令,这些操作系统与网络知识同样不可或缺。本文围绕一套真实的大厂C语言校招笔试卷展开复盘,

weixin_31856057的博客 264

7-5 求算式 (20分)

编程求 y=√​ax​​​+ln(a+x)+e​x​​。从键盘输入a和x,输出结果保留2位小数。 输入格式: 从键盘输入a和x的值,中间用空格分隔。 输出格式: 输出结果保留2位小数。 输入样例: 5.5 2.4 输出样例: y = 16.72 #include <stdio.h> #include <math.h> int main() { double a,x,...

小菜求生机带你C到飞起 6978

C++校招笔试备战指南:从核心知识点到算法模板的全面拆解

C++作为底层系统与高性能服务的核心语言,其校招笔试不仅考察语法熟练度,更看重对对象模型、内存管理与STL机制的理解深度。从constexpr的版本演化到ABA问题的并发安全,从设计模式的工程实践到快速幂、单调栈等高频算法模板,系统掌握这些基础概念是应对大厂笔试的关键。同时,字符串数组初始化、排序算法稳定性、输入输出处理等细节也常成为区分度所在。本文结合网易2023校招笔试真题风格,梳理了考点分布、八股文清单与编程题套路,并给出了VS Code环境配置与笔试复盘方法,帮助求职者在有限时间内构建清晰的备考路径

weixin_33788244的博客 362

2024-3-30 网易雷火笔试题题解(A~C)

今日行程:12:30 - 14:00 吃饭,好不容易熬来的放纵餐,狠狠地入了一把,羊肉串*4、一份羊。/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * *垃圾软件,就是为了骗学生的钱,我就弄个简历,懒的自己做,好嘛,所有的模板都有个在校经历,除了刚毕业的。/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * *实习或者正式找工作的时候,笔试是必须的吗,或者哪些公司一般需要笔试,还有笔试内容一般是什么(看一些官。

han_xue_feng的博客 1088

【2022网易雷火】游戏研发笔试-AC代码及题目分享

3个小时,4道题目,雷火的题目不在于难,更在于对细节的把控和写大模拟的耐心,花了一个半小时,AC了3.85,直接交卷退了。第一题AC,第二题AC,第三题85%,第四题AC。下面分享一下大致的题意和对应的代码,就不多说了,最近很累(代码可能会有贴错的情况,如有望指正,感谢~)。 T1-小Y抽奖 题意 n行m列个奖励格子,每次抽奖消耗一个道具。每个格子奖励的数量有限且各不相司。每个格子被抽到一次,剩余的奖励数量-1。剩余的奖励数量为0时,则不会再抽到该格子。小Y抽了好多次,但一直没有抽到最想要的..

米莱虾 9266

拼多多Android面试题及参考答案

Android 系统采用分层架构设计,从底层到上层依次为Linux 内核层硬件抽象层(HAL)系统运行时库层应用框架层应用层,共五层。位置:Linux 内核层与系统运行时库层之间,是“硬件与系统的隔离层”。核心作用:屏蔽硬件差异,为上层提供统一的硬件访问接口,解决 Android 开源与硬件厂商闭源的矛盾,具体功能如下:硬件能力抽象:将硬件的具体实现(如不同厂商的摄像头芯片、音频芯片)封装为标准化接口(如Camera HALAudio HAL。

大模型大数据攻城狮的专栏 1284

【网易2019编程题】

俄罗斯方块 小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块。因为它比较古老,所以规则和一般的俄罗斯方块不同。 荧幕上一共有 n 列,每次都会有一个 1 x 1 的方块随机落下,在同一列中,后落下的方块会叠在先前的方块之上,当一整行方块都被占满时,这一行会被消去,并得到1分。 有一天,小易又开了一局游戏,当玩到第 m 个方块落下时他觉得太无聊就关掉了,小易希望你告诉他这局游戏他获得的分数。 输...

summer2day的博客 355

闲鱼客户端三重动态签名机制解析:x-sign、x-mini-wua与x-umt

在移动客户端安全通信中,设备级动态签名已成为主流App防范自动化攻击的核心手段。其原理是将设备指纹、运行时行为与可信硬件标识深度融合,生成不可复用、不可跨端、不可静态伪造的请求凭证。这类机制超越传统Token或Session鉴权,具备强上下文绑定性与实时熵值校验能力,广泛应用于电商、社交及开放平台等高风险接口场景。技术价值体现在有效识别模拟器、无头浏览器与集群化爬虫,同时保障多端一致性与合规数据对接。本文聚焦闲鱼客户端实际落地的x-sign(带设备上下文的混合签名)、x-mini-wua(小程序行为水印)与

weixin_35732273的博客 495

网易2019秋季校园招聘编程题真题集合

                                网易2019秋季校园招聘编程题真题集合     俄罗斯方块 小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块。因为它比较古老,所以规则和一般的俄罗斯方块不同。 荧幕上一共有 n 列,每次都会有一个 1 x 1 的方块随机落下,在同一列中,后落下的方块会叠在先前的方块之上,当一整行方块都被占满时,这一行会被消去,并得到1分。...

stay hungry ! stay foolish! 907

Tartancalib标定OAK-FFC_4p(上)

1.使用Tartancalib标定双目或多目相机前,先对单个相机标定获得内参,再获得外参。

qq_51731421的博客 1277

C# WinForm和Sherlock进行对接

文章目录 前言 一、使用步骤 二、使用步骤 1.引入库 2.读入数据 总结 前言 本人公司最近在做一款瑕疵检测的视觉项目,项目中利用Sherlock从相机中取图和对图像进行视觉处理,然后将图像和数据传输到项目中。这过程中软件需要和Sherlock进行图像和数据的传递,这就需要WinForm和Sherlock进行对接,但我在网上查找了许久能用上的资料十分有限,所以我决定写下这篇文章,来做一次总结,同时也希望能帮助到同样在为此问题困扰的你。 一、使用步骤 废话不...

adminmmrt的博客 3221

网易2019实习笔试编程题解析:二分、前缀和与边界条件避坑指南

二分查找、前缀和与模拟类问题,是算法笔试中最高频的基础考察点。理解其原理与适用边界,不仅能解决查询定位、区间统计等典型问题,更是应对大厂笔试和实际工程优化的重要能力。这类题往往题干简短、陷阱隐蔽,稍不注意就会在边界条件上失分。以一套经典的网易实习生招聘编程题为例,它用闹钟、俄罗斯方块、果园苹果等业务场景,综合考察了二分、前缀和、枚举与暴力求解的灵活运用。逐题拆解核心思路、代码模板和常见错误,并给出笔试现场的时间分配与部分分策略,能帮助正在备战暑期实习或校招的同学,提升代码实现的稳定性与临场取舍能力,让刷题复

weixin_34060299的博客 313

思科—OSPF多区域配置实验

实验目的:配置OSPF多区域,使得不同网段的PC互相ping通。 网络拓扑如下: R0的配置 Router>en Router#conf t Router(config)#int g0/1 Router(config-if)#ip add 192.168.1.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int g0/0 Router(config-if)#ip add 192.168.

m0_46237205的博客 1万+

网易秋招笔试编程题合集(一):四道经典算法题深度解析

算法与数据结构是技术面试的基石,尤其在各大互联网公司的校招笔试中,对候选人的问题拆解与代码实现能力提出了较高要求。常见的算法模型如贪心算法、动态规划,往往隐藏在不同题目背景之下,需要透过现象识别本质。以资源分配问题为例,排序后从小到大匹配是典型的贪心策略;而面对具有无后效性的多阶段决策,动态规划的状态转移则能高效求解。此外,栈结构在处理局部连锁反应时具有天然优势,约瑟夫环问题又体现了从模拟到数学归纳的思维跃迁。这些算法不仅在笔试中高频出现,更直接关系到实际工程中的性能优化与逻辑设计。网易2019年秋招笔试编

weixin_34252686的博客 344

SAP Fiori 从技术上而言到底包含哪些组件?

SAP Fiori是企业级UX设计的系统化解决方案,基于五大原则构建:角色导向(Role-based)、自适应(Adaptive)、简洁(Simple)、一致(Coherent)和愉悦(Delightful)。其技术实现包含SAPUI5开发框架、Fiori Launchpad统一入口、OData服务网关等核心组件,通过标准化设计模式与开发工具链,显著提升企业应用的用户体验和开发效率。典型案例显示,遵循Fiori原则可缩短30%以上的操作时长,降低50%的培训成本。该体系既保持跨设备一致性,又支持业务场景的深

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 223

2、欧洲期权的赫斯顿模型

本文详细介绍了赫斯顿随机波动率模型在欧洲期权定价中的应用。模型通过引入随机方差过程,克服了布莱克-斯科尔斯模型中波动率恒定的局限性,更贴近市场实际。文章阐述了模型的动态结构、风险中性转换、期权定价公式及其半封闭解的计算方法,并提供了基于VBA的数值实现方案。通过梯形法则与高斯积分等数值方法对比,分析了不同积分策略的精度与效率。同时验证了当波动率为零时,赫斯顿模型退化为布莱克-斯科尔斯模型的一致性。最后讨论了模型的优势、挑战及实际应用建议,强调了数值积分稳定性和参数估计的重要性。

tequila的博客 349

网易2017春招笔试真题编程题集合-牛客网

牛客网真题练习- 网易2017春招笔试真题编程题集合 双核处理 一种双核CPU的两个核能够同时的处理任务,现在有n个已知数据量的任务需要交给CPU处理,假设已知CPU的每个核1秒可以处理1kb,每个核同时只能处理一项任务。n个任务可以按照任意顺序放入CPU进行处理,现在需要设计一个方案让CPU处理完这批任务所需的时间最少,求这个最小的时间。 输入描述: 输入包括两行: 第一行为...

weixin_30566111的博客 343

Transformer实战(33)——高效自注意力机制

在本节中,我们学习了如何在硬件资源受限的情况下减轻运行大模型的负担,介绍了高效的稀疏 Transformer 模型,通过近似技术(如 Linformer、BigBird 和 Performer) 用稀疏矩阵替代全自注意力矩阵。并观察它们在各种基准测试中的表现,例如计算复杂度和内存复杂度。结果表明,这些方法可以在不牺牲性能的情况下将平方级复杂度降低到线性复杂度。

盼小辉丶的博客 3039

网易杭研Windows开发笔试复盘:系统级编程才是核心

系统级开发是Windows平台软件工程师的核心能力,它要求开发者深入理解C++对象模型、内存布局与并发机制。Windows消息循环、线程同步原语、PE文件结构等原理,直接决定客户端框架与后台服务的稳定性。在PC客户端、系统组件、崩溃日志分析等场景中,这些底层知识比界面框架更关键。网易杭研Windows开发笔试正是基于这一逻辑设计,重点考查C++虚函数与内存对齐、多线程同步、Socket编程等,而非单纯界面开发。掌握这些技术原理,才能应对真实工程挑战。

weixin_33816300的博客 7986

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

网易2019秋招笔试编程题解析:五道高频算法题与边界处理技巧

算法笔试是技术校招中常见的筛选环节,题目往往围绕字符串处理、数学推导、枚举优化、动态规划和模拟等基础能力展开。理解题意并将实际问题抽象为算法模型,是解题的关键。本文从通用的编程思维出发,介绍取模运算周期、区间计数、递归合并等经典原理,并结合秋招真题展示这些技术的实际应用价值。通过分析完整周期与剩余部分等细节,帮助读者掌握从暴力解法到高效优化的路径。文章内容覆盖典型题目拆解、代码实现与边界坑点,适合正在准备秋招春招或希望提升算法实战能力的开发者,自然地引导到一套具有代表性的笔试真题练习中。

weixin_34205826的博客 380

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

网易移动端开发校招笔试核心考点与备考策略全解析

在技术校招中,扎实的计算机基础与工程实践能力是移动端开发岗位的考察核心。从数据结构、操作系统到网络协议,这些公共知识构成了笔试的底层框架;而移动端特有的系统机制、内存管理与跨端开发方案,则决定了候选人对业务场景的理解深度。随着Vue生态的普及,uni-app等移动端vue开发框架逐渐成为跨端业务的主流选择,掌握其架构原理与技术价值,能够帮助应聘者更好地应对开放性问题。本文结合网易移动端开发工程师校招笔试的真题复盘,梳理从基础考点到编程实战的完整备考路径,助力你在有限时间内高效冲刺心仪offer。

weixin_34253126的博客 520

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

网易 [编程题] 表达式求值

[编程题] 表达式求值 时间限制:1秒 空间限制:262144K 今天上课,老师教了小易怎么计算加法和乘法,乘法的优先级大于加法,但是如果一个运算加了括号,那么它的优先级是最高的。例如: 1 2 3 4 1+2*3=7 1*(2+3)=5 1*2*3=6 (1+2)*3=9 现在小易希望你帮他计算给定...

qq_29762941的博客 947
下一篇: 《剑指offer》【面试题3:二维数组中的查找】
IT_model
博客等级 码龄9年 61粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值