数据结构:使用Stack完成表达式计算逻辑

题目:

给出如下串:sum(sum(sum(1,2),avg(3,5)),avg(avg(6,8),7)), 计算结果(保证输入任意上述接口均能输出正确结果)

思路:
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==编辑
代码:
import java.util.Stack;public class Test {public static String sum = "sum";public static String avg = "avg";public static String s1 = "sum(sum(sum(1,2),avg(3,5)),avg(avg(6,8),7))";public static void main(String[] args) {System.out.println(parseByStack(s1));;}/*** * @param s* @return*/public static float parseByStack(CharSequence s) {Stack<String> operators = new Stack<>();Stack<Float> numbers = new Stack<>();int index = 0;while (index < s.length()) {if (s.charAt(index) == 's' && s.charAt(index + 1) == 'u' && s.charAt(index + 2) == 'm') {operators.push(sum);index += 3;} else if (s.charAt(index) == 'a' && s.charAt(index + 1) == 'v' && s.charAt(index + 2) == 'g') {operators.push(avg);index += 3;} else if (Character.isDigit(s.charAt(index))) {StringBuilder sb = new StringBuilder();while (Character.isDigit(s.charAt(index))) {sb.append(s.charAt(index));index++;}numbers.push(Float.parseFloat(sb.toString()));} else if (s.charAt(index) == ')') {// 遇见左括号时,需要处理数据var operator = operators.pop();if (operator.equals(sum)) {numbers.push(numbers.pop() + numbers.pop());} else if (operator.equals(avg)) {numbers.push((numbers.pop() + numbers.pop()) / 2);}index++;} else {// s.charAt(index) == '(' || s.charAt(index) == ','index++;}}return numbers.pop();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8s 的 ResourceList进行加减操作工具类

背景 需要计算STS需要的资源并且扩容NameSpace的resourcequotas 方法 在Kubernetes Go客户端中&#xff0c;你可以使用一些基本的算术运算符来对ResourceList进行加减操作。ResourceList中的值是以v1.ResourceList类型表示的&#xff0c;这个类型实际上是一个map&#xff0c…

paddleocr文字识别变迁

数据挖掘 v3 UIM&#xff1a;无标注数据挖掘方案 UIM&#xff08;Unlabeled Images Mining&#xff09;是一种非常简单的无标注数据挖掘方案。核心思想是利用高精度的文本识别大模型对无标注数据进行预测&#xff0c;获取伪标签&#xff0c;并且选择预测置信度高的样本作为训…

LeetCode(57)合并两个有序链表【链表】【简单】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 合并两个有序链表 1.题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4…

修改naive ui默认样式,css变量值修改

新项目开发使用了naive ui组件库&#xff0c;使用组件时涉及到css样式修改&#xff0c;可以直接在组件父容器上使用组件内自带的css变量&#xff0c;组件会自动继承父容器的css变量值&#xff0c;不会影响其他页面使用&#xff1b; 示例&#xff1a;一个注册表单&#xff0c;两…

Centos7 配置Git

随笔记录 目录 1&#xff0c; 新建用户 2. 给用户设置密码相关操作 3. 为新用户添加sudo 权限 4. 配置Git 4.1 配置Git 4.2 查看id_ras.pub 5, 登录Git 配置SSH 秘钥 6. Centos7 登录Git 7. clone 指定branch到本地 8. 将新代码复制到指定路径 9. 上传指定代码 …

Zigbee课程设计系列文章

Zigbee课程设计系列文章 前言题目一、智能温室大棚系统设计要求设计方法文章链接 题目二、基于Zigbee技术的智能家居系统设计要求设计方法 题目三、自习室照明节能系统设计设计要求设计方法 题目四、冷库环境监测系统的设计设计要求设计方法 题目五、扩展题目设计要求 总结 前言…

生态系统NPP及碳源、碳汇模拟、土地利用变化、未来气候变化、空间动态模拟实践技术应用

碳中和可以从碳排放&#xff08;碳源&#xff09;和碳固定&#xff08;碳汇&#xff09;这两个侧面来理解。陆地生态系统在全球碳循环过程中有着重要作用&#xff0c;准确地评估陆地生态系统碳汇及碳源变化对于研究碳循环过程、预测气候变化及制定合理政策具有重要意义。 CASA(…

云运维管理,如何更快,更准,更高效

近几年&#xff0c;云计算在国内发展如火如荼&#xff0c;得益于此&#xff0c;政企的数字化进程也得到加速发展。越来越多的在云上构建和运行核心系统&#xff0c;新的运维问题也随之而来&#xff0c;如何掌握平台部署架构&#xff0c;管理云上云下资源&#xff0c;掌握具体资…

spark的宽依赖,窄依赖

在 Apache Spark 中&#xff0c;依赖关系是指 RDD&#xff08;弹性分布式数据集&#xff09;之间的关系。依赖关系的类型对于理解 Spark 的任务调度、分区和故障恢复等方面至关重要。Spark 中主要有两种类型的依赖关系&#xff1a;窄依赖&#xff08;Narrow Dependency&#xf…

生产实践:基于K8S私有化交付要注意这几点问题

公众号「架构成长指南」&#xff0c;专注于生产实践、云原生、分布式系统、大数据技术分享 在使用 k8s 进行项目私有化部署时&#xff0c;会遇到很多问题&#xff0c;以下把作者经常遇到的一些问题以及需要注意的点分享给各位。 资源依赖问题 在进行私有化部署时&#xff0c;…

ceph-deploy 遇到的使用问题

问题一、RuntimeError: bootstrap-osd keyring not found; run ‘gatherkeys’ 当执行ceph-deploy命令时&#xff0c;提示找不到keyring文件。 解决思路&#xff1a;首先前往部署文件夹/etc/ceph-cluster/&#xff0c;检查密钥文件是否存在&#xff0c;不存在的话执行gatherkey…

期刊缩写查询网站

背景&#xff1a; 参考文献需要期刊缩写 问题描述 期刊不同缩写不同 解决方案&#xff1a; 网址一 网址二 网址三

字符设备驱动开发基础

一. 简介 本文简单了解一下&#xff0c;在字符设备驱动开发开始前对其一些基本认识。简单了解一下&#xff0c;应用程序与驱动的交互原理&#xff0c;以及字符设备驱动开发流程。 二. 字符设备驱动开发流程 1. 在 Linux 中一切皆为文件&#xff0c;驱动加载成功以后会在“…

数据爬虫:获取申万一级行业数据

目录 1. 获取访问接口 2. 链接网址 3. 链接名单 免责声明&#xff1a;本文由作者参考相关资料&#xff0c;并结合自身实践和思考独立完成&#xff0c;对全文内容的准确性、完整性或可靠性不作任何保证。同时&#xff0c;文中提及的数据仅作为举例使用&#xff0c;不构成推荐…

JAVA 导出报表 大数据量 sxssfworkbook的使用

sxssfworkbook 之前报表导出使用得是XSSFWorkbook 但是导出数据量过大的时候经常出现OOM&#xff0c;现在发现使用sxssfworkbook 减少内存压力 官网是这样介绍的&#xff1a; SXSSF (package: org.apache.poi.xssf.streaming) is an API-compatible streaming extension of X…

网站高性能架构设计——高性能数据库集群

从公众号转载&#xff0c;关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、高性能数据库简介 1.高性能数据库方式 读写分离&#xff1a;将访问压力分散到集群中的多个节点&#xff0c;没有分散存储压力 分库分表&…

Maven 私服搭建

文章目录 配置模板servermirror RELEASE、SNAPSHOT版本区别发行版&#xff08;RELEASE&#xff09;快照&#xff08;SNAPSHOT&#xff09; mvn deploy 配置模板 server <!--第一个server-id要和下面的mirror中的id一致&#xff0c;代表拉取是也需要进行身份校验--> <…

Unity_使用FairyGUI搭建登录页面

Unity_使用FairyGUI搭建登录页面 1. 使用FairyGUI准备一个UI界面&#xff0c;例如&#xff1a;以下登录 2. 发布导出&#xff08;发布路径设置为Unity的Asset下任何路径&#xff09; 3. Unity编辑器安装FairyGUI包资源&#xff08;在资源商店找见并存储为我的资源&#xff0c;…

百度智能云战略与咨询高级总监詹颖:每个人都能在大模型驱动的数字化生态中找到立足之地

“ 大模型是皇冠上的明珠。 ” 整理 | 王娴 编辑 | 云舒 出品&#xff5c;极新 2023年11月28日&#xff0c;极新AIGC行业峰会在北京东升国际科学园顺利召开&#xff0c;百度智能云战略与咨询高级总监詹颖女士在会上做了题为《生成式 AI 驱动企业应用创新》的演讲。 重点…

了解宝宝健康第一步:做好华大基因无创产前筛查检测

近年来&#xff0c;高龄产妇明显增加&#xff0c;多因素的影响导致出生缺陷发生率呈总体上升趋势&#xff0c;出生缺陷已经成为重大公共卫生问题之一&#xff0c;更是影响人口质量的重要风险因素。孕前、孕期到产后的出生缺陷综合防控三级体系中&#xff0c;做好产前筛查是阻断…