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

华为OD机试真题(Java),四则运算(100%通过+复盘思路)

一、题目描述

输入一个表达式(用字符串表示),求这个表达式的值。

保证字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’, ‘*’,‘/’ ,‘(’, ‘)’,‘[’, ‘]’,‘{’ ,‘}’。且表达式一定合法。

数据范围:表达式计算结果和过程中满足∣val∣≤1000 ,字符串长度满足 1≤n≤1000

二、输入描述

输入一个算术表达式。

三、输出描述

得到计算结果。

四、解题思路

  1. 读取输入的算术表达式字符串 s;
  2. 初始化变量 num1 为0,用于保存当前运算结果;
  3. 初始化变量 o1 为1,表示当前运算符的符号,默认为正号;
  4. 初始化变量 num2 为1,用于保存当前数字的值;
  5. 初始化变量 o2 为1,表示当前乘除运算符的符号,默认为正号;
  6. 创建一个栈 stk,用于保存计算过程中的状态;
  7. 遍历表达式字符串 s的每个字符 c:
    • 若 c 是数字字符,则将连续的数字字符解析成一个整数 cur,并根据 o2 的符号进行乘除运算,更新 num2 的值;
    • 若 c 是乘除运算符字符 * 或 /,更新 o2 的符号;
    • 若 c 是左括号字符 ( 或 { 或 [,将当前的运算结果和运算符状态压入栈中,并初始化 num1、o1、num2、o2 的值;<
http://www.lryc.cn/news/90671.html

相关文章:

  • HTML表单标签form分析
  • Qt 项目文件Pri详解
  • Keil 5 MDK 发律师函警告了,如何用STCubeIDE开发标准库的程序(STM32F103C8T6为例)
  • 接口测试--apipost接口断言详解
  • YYDS练手 130道python练习题 完整版PDF
  • 2-python的变量类型
  • Python之并发编程一背景知识
  • Redis分区
  • 代码随想录算法训练营第56天 | 583、72
  • c++输入输出文件操作stream
  • 【小呆的力学笔记】非线性有限元的初步认识【三】
  • python计算闰年
  • 聊聊如何使用Js写一个简单的二级联动和三级联动呢?
  • IPv4 和 IPv6 的特点、区别以及在互联网中的应用
  • JavaScript处理移动web交互
  • 4年测试经验,一问三不知,过于离谱...
  • Java 与查找算法(2)二分查找
  • Java程序设计入门教程--原始类与包装类
  • pip安装python库速度慢、失败及超时报错解决办法
  • 向量数据库
  • leetcode 11.盛最多水的容器
  • 都说00后已经躺平了,但是有一说一,该卷的还是卷啊。
  • 牛客网刷题学习SQL(二)
  • 深蓝学院 C++笔记 先导篇章 - 绪论
  • R7-19 天梯赛团队总分
  • 使用 Kotlin 的 Opt-in (选择加入)功能注解API提示当前非稳定API
  • webpack配置排除打包
  • HNU-操作系统OS-ucoreLab系列-感悟
  • MySQL运维篇(三)
  • Lecture 2 Text Preprocessing