华为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://xiahunao.cn/news/2821773.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Carla自动驾驶仿真八:两种查找CARLA地图坐标点的方法

文章目录 前言一、通过Spectator获取坐标二、通过道路ID获取坐标总结 前言 CARLA没有直接的方法给使用者查找地图坐标点来生成车辆,这里推荐两种实用的方法在特定的地方生成车辆。 一、通过Spectator获取坐标 1、Spectator(观察者)&#xf…

【C++】C++的四种强制类型转换

1、C语言中的类型转换 在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换…

我国每年研究生的毕业数量统计分享

本数据集详细记录了自1949年至2021年我国每年研究生的毕业数量(包括硕士和博士学位的毕业生)。在2021年,我国的研究生毕业生人数达到了772,761人,此数字比上一年度增加了44,000人。 统计的数据单位使用的是人数。 数据展示&…

rust学习(tokio协程分析二)

例子: 我们如果使用new_current_thread来创建tokio的协程运行runtime时, let rt tokio::runtime::Builder::new_current_thread().enable_all().build().unwrap(); 发现只有调用rt.block_on(...)才能触发。这里我们分析一下为何在new_current_thread…

20240301作业

1.使用fwrite、fread将一张随意的bmp图片&#xff0c;修改成德国的国旗 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> int main(int argc, const char *argv[]) {FILE* fp fopen("./gaoda.bmp","…

SpringBoot+Vue实战:打造企业级项目管理神器

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

vue面试:MVVM、MVC、MVP的区别?

vue面试&#xff1a;MVVM、MVC、MVP的区别&#xff1f; MVVM、MVC、MVP是什么&#xff1f;&#xff08;1&#xff09;MVC&#xff08;2&#xff09;MVVM&#xff08;3&#xff09;MVP MVVM、MVC、MVP是什么&#xff1f; MVC、MVP 和 MVVM 是三种常见的软件架构设计模式&#x…

【复现】蓝凌OA SQL注入漏洞_61

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 蓝凌智能OA是由深圳市蓝凌软件股份有限公司开发&#xff0c;是一款针对中小企业的移动化智能办公产品&#xff0c;融合了钉钉数字…

【前端素材】推荐优质在线大气数码商城电商网页ClassiList平台模板(附源码)

一、需求分析 1、系统定义 电子数码电商平台是专门销售电子数码产品&#xff08;如手机、电脑、相机、智能设备等&#xff09;的在线电子商务平台。这些平台提供了一个便捷的购物环境&#xff0c;让消费者可以方便地浏览、比较和购买各种电子数码产品。 2、功能需求 在线大…

苹果备忘录导出方法

文章目录 前言方法1&#xff1a;iCloud 导出方法2&#xff1a;Pages 文稿导出&#xff08;最推荐&#xff09;方法3&#xff1a;借助Mac软件导出总结 前言 苹果生态真是让我们又爱又恨&#xff0c;其得益于无缝整合、安全性和应用程序生态系统&#xff0c;能够让在用户在自己的…

渗透测试靶场环境搭建

1.DVWA靶场 DVWA&#xff08;Damn Vulnerable Web Application&#xff09;是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用&#xff0c;包含了OWASP TOP10的所有攻击漏洞的练习环境&#xff0c;旨在为安全专业人员测试自己的专业技能和工具提供合法的环境&#xff0c;同时…

叠纸探索开放世界,女性向游戏的新生机?

女性向游戏也能搭载开放世界&#xff1f; 随着新一批游戏版号的发放&#xff0c;叠纸的新作《无限暖暖》毫无疑问成为了最受关注的游戏之一&#xff0c;换装冒险开放世界的组合为女性向游戏市场带来了新的惊喜。 作为暖暖系列的第五部作品&#xff0c;《无限暖暖》对比前作可以…

数据库常见理论常见面试题(总结)

一、前言 这里呢&#xff0c;博主会介绍一些平时关于数据库的理论的问题&#xff0c;比如数据库的三级模式两级映射、触发器、范式、存储过程、视图等等概念知识&#xff0c;但是像索引、事务、锁等内容&#xff0c;之前的文章就讲解过了&#xff0c;这里就不作过多的介绍了&am…

transformer--编码器2(前馈全连接层、规范化层、子层链接结构、编码器层、编码器)

前馈全连接层 什么是前馈全连接层: 在Transformer中前馈全连接层就是具有两层线性层的全连接网络 前馈全连接层的作用: 考虑注意力机制可能对复杂过程的拟合程度不够,通过增加两层网络来增强模型的能力 code # 前馈全连接层 class PositionwiseFeedForward(nn.Module):de…

图片如何无损放大?分享三个方法帮你快速解决

在数字时代&#xff0c;图片已成为我们生活的重要组成部分&#xff0c;无论是社交媒体的分享&#xff0c;还是专业设计的呈现&#xff0c;都离不开高质量的图片。然而&#xff0c;当我们试图放大一张图片以获取更多细节时&#xff0c;常常会遇到一个令人头疼的问题——失真。此…

多版本jdk共享jar

多版本jdk共享jar Java 9的一个有趣特性是支持多版本JAR文件。这是什么意思?过去&#xff0c;库开发人员在支持新版本的Java时有三种选择: 提供两个(或更多)不同的JAR文件&#xff0c;每个文件对应他们想要支持的Java版本。它们的版本号可能是“1.2-java-5”和“1.2-java-1.…

小工具——抖音短视频评论自动同步

很多时候喜欢看抖音的评论&#xff0c;有时候评论也是一个查疑解惑的好地方&#xff0c;很多人也喜欢把抖音的评论集中起来做分析。 因为一个朋友问过我这回事&#xff0c;闲着的时候也研究了下抖音&#xff0c;所以自己做了个小工具&#xff0c;自动同步你观看的抖音短视频的…

解读人工智能的理论基石

1956年的一个夏天&#xff0c;在达特茅斯学院的一个小会议室里&#xff0c;一群充满好奇和野心的年轻科学家聚集在一起&#xff0c;他们有一个共同的梦想&#xff1a;创造能够模仿人类智能的机器。这不仅仅是科幻小说的情节&#xff0c;更是人工智能历史上一个真实的起点。从那…

深度强化学习入门(待修改)

目录 前言 一、强化学习 1.马可洛夫链 2.蒙地卡罗 3.时序差分TD 4.gym学习​编辑 FrozenLake 二、RL基本算法 1.Q-learning和SARSA 2.DQN Deep network Qlearning DQN 三、PG策略算法 总结 前言 这段时间学习深度强化学习的总结。 一、强化学习 强化学习是做出最佳决策的科学…

useState多次渲染页面卡顿 useMemo

useState多次渲染页面卡顿 state变化了组件自然应该重新进行渲染&#xff0c;但有时我们并不需要。 React.memo()(useMemo)是一个高阶组件&#xff0c;它接收另一个组件作为参数&#xff0c;并且会返回一个包装过的新组件&#xff0c;包装过的新组件就会具有缓存作用&#xff…