华为OD机试真题-提取字符串中的最长数学表达式并计算-2023年OD统一考试(C卷)---Python3--开源

题目:
在这里插入图片描述

考察内容:
滑动窗口+ eval()
思路:先把合法字符提取出来;再从合法字符提取出合法表达式;再获取最长字符串,并运算最后结果。
代码:

"""
analyze:
如果没有,返回0
数学表达式包括,0-9;+-*
要求:最长(字符串);合法
一个数字不是算法表达式操作符不能连续出现input:
stroutput:
最长合法简单数学表达式eg:
1-2a1bc--3+*d-*3-6
[1-2, 1, --3+*, -*3-6]
['1-2', '1', '-3', '3-6']0-ac1*6-4*3+s-1*2abdd13456
way
先把合法字符提取处理
再处理合法表达式re:
第一个可以为+/, 次数0/1
第二个必须为数字, 数字后面可以跟1-n个数字;
第三个为+/-/* 数字(1-n)
"""
input_str = input()legal_numbers = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
legal_char = ["+", "-", "*"]
legal = legal_char + legal_numbers
res = list()
left, right = 0, 0
for i in range(len(input_str)):if input_str[i] in legal:right = right + 1if i == len(input_str)-1:res.append(input_str[left:right])else:# print(left, right)res.append(input_str[left:right])left = right + 1right = left# print(res)def check_validity_no_regex(s):"""检查表达式是否合法:param s::return:"""flag = Falseprevious_char = None# 判断表达式是否包含[+,-,*]for char in legal_char:if char in s:flag = True# 判断表达式中是否出现连续符合for char in s:if char in legal_char and previous_char in legal_char:flag = Falsereturn flagprevious_char = charreturn flagtemp = list()
for i in res:# 剔除空字符串if len(i) == 0:continue# 判断表达式是否合法result = check_validity_no_regex(i)if result:# 防止表达式最后一个字符为运算字符if i[-1] in legal_char:temp.append(i[:-1])else:temp.append(i)# print(temp)
if temp:expression = max(temp, key=len)print(expression, eval(expression))
else:print("kong")

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

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

相关文章

数字逻辑与计算机组成

冯诺依曼计算机 计算机结构 计算机特点 1.采用二进制 2.程序存储 2.由五大部件组成计算机系统:运算器、存储器、控制器、输入设备和输出设备 计算机硬件系统的层次 中央处理器(CPU):运算器 控制器 计算机主机:…

CAN总线位时序的介绍

CAN控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。 显性电平对应逻辑 0,CAN_H 和 CAN_L 之差为 2.5V 左右。而隐性电平对应逻辑 1&#xff0c…

阿里云搭建私有docker仓库(学习)

搭建私有云仓库 首先登录后直接在页面搜索栏中搜索“容器镜像服务” 进入后直接选择个人版(可以免费使用) 选择镜像仓库后创建一个镜像仓库 在创建仓库之前我们先创建一个命名空间 然后可以再创建我们的仓库,可以与我们的github账号进行关联…

开发知识点-Python-爬虫

爬虫 scrapybeautifulsoupfind_all find祖先/父节点兄弟节点nextpreviousCSS选择器属性值 attrsselect 后 class 正则使用字符串来描述、匹配一系列符合某个规则的字符串组成元字符使用grep匹配正则组与捕获断言与标记条件匹配正则表达式的标志 特定中文 匹配 scrapy scrapy内…

011-闭包

闭包 1、概念2、闭包应用防抖&节流 1、概念 闭包:就是能够读取其他函数内部变量的函数。 function fn1() {const num 100;return function(num1) {return num num1; // 该函数 使用了 父作用域里面的 num,所以被称为闭包} }const sumFn fn1();…

【C语言】指针超级无敌金刚霹雳进阶(但不难,还是基础)

点击这里访问我的博客主页~~ 对指针概念还不太清楚的点击这里访问上一篇指针初阶2.0 上上篇指针初阶1.0 谢谢各位大佬的支持咯 今天我们一起来学习指针进阶内容 指针进阶 一、指针变量1、字符指针变量2、数组指针变量①数组指针变量的定义②数组指针变量的初始化 3、函数指…

C++面试干货---带你梳理常考的面试题(二)

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 1.struct 和 class 区别 1.默认访问权限:struct中的成员默认为public,而class中的成员默认为priv…

ClickHouse安装、简介及使用

文章目录 一、简介1、什么是ClickHouse2、什么是OLAP3、列式存储特性 二、安装1、官方文档2、docker安装3、核心目录4、clickhouse-client使用 参考资料 一、简介 1、什么是ClickHouse ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 官网:htt…

网上搞钱的方法你知道几个?盘点3个普通人都可操作的赚钱项目

项目一,微头条 我们可以借助精彩的文章,分享知识、心得和见解,吸引更多的读者关注并获得更多的点赞与评论。关键字的巧妙运用将使你的文章更具吸引力和影响力,同时也会为你带来更多的关注度和阅读量。我们写微头条文章的时候&…

2024.3.5每日一题

LeetCode 到达目的地的方案数 题目链接:1976. 到达目的地的方案数 - 力扣(LeetCode) 题目描述 你在一个城市里,城市由 n 个路口组成,路口编号为 0 到 n - 1 ,某些路口之间有 双向 道路。输入保证你可以…

LeetCode 2673. 使二叉树所有路径值相等的最小代价【贪心】1917

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

Android开发第三方库PhotoView的使用

PhotoView 是一个用于Android的第三方库,它扩展了Android的ImageView,提供了诸如捏合缩放、平移和双击缩放等交互功能。 多点触控缩放:用户可以使用两个手指捏合来放大或缩小图片。平滑滚动:当图片被放大后,用户可以拖…

python三剑客之一——Numpy

温故而知新,借着工作需要用到Numpy的机会重新学习一遍Numpy。 Numpy是一个运行速度非常快的数学库,主要用于数组计算,包含如下: 一个强大的N维数组对象ndarray【Nd(Dimension维度)array】 广播功能函数 整…

JAVA学习-类和接口.匿名类

Java类和接口是面向对象编程的基本概念,类用来描述对象的属性和行为,接口定义一组方法的规范。匿名类是一种特殊的类,它没有名字,在使用时直接定义和实例化。 Java中常见的类和接口有很多,包括基本类(如Str…

2024.3.5

作业1、使用select实现tcp服务器端&#xff0c;poll实现tcp客户端 服务器端&#xff1a; #include <myhead.h> #define SER_IP "192.168.199.131" //服务端IP #define SER_PORT 8888 //服务端端口号int main(int argc, const char *argv[])…

plc远程锁机网关,远程锁机与防拆功能双重保障

在设备租赁和分期购买领域&#xff0c;如何确保设备的安全与资金的回收一直是各大厂家和卖家关注的重点。传统的锁机方式往往需要人工介入&#xff0c;不仅效率低下&#xff0c;而且成本高昂。如今&#xff0c;借助HiWoo Box的远程锁机功能&#xff0c;这些问题将迎刃而解。 什…

Linux运维工具-ywtool默认功能介绍

提示:工具下载链接在文章最后 目录 一.资源检查二.日志刷新三.工具升级四.linux运维工具ywtool介绍五.ywtool工具下载链接 一.资源检查 只要系统安装了ywtool工具,默认就会配置上"资源检查"的脚本资源检查脚本的执行时间:每天凌晨3点进行检查资源检查脚本的检查内容…

基于springboot+vue的球队训练信息管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

el-select 选中之后所有颜色变蓝了

出现上述原因&#xff1a;你写的value属性的绑定值是对象&#xff0c;在规定中只能value的值只能是boolean / string / number这三种类型&#xff0c; 所以要加上value-key属性 <el-select v-model"senderProvince" placeholder"请选择活动区域">&…

Hive分组排序取topN的sql查询示例

Hive分组排序取topN的sql查询示例 要在Hive中实现分组排序并取每组的前N条记录&#xff0c;可以使用 ROW_NUMBER() 窗口函数结合 PARTITION BY 和 ORDER BY 子句。 以下是一个示例SQL查询&#xff0c;用于选择每个部门中工资最高的前3名员工&#xff1a; SELECT department, e…