华为OD机试C卷-- 提取字符串中的最长合法简单数学表达式(Java & JS & Python & C)

该博客主要介绍了如何从字符串中提取最长合法的简单数学表达式,并计算其值。题目要求表达式仅包含数字和±*,且运算符不能连续。如果存在多个相同长度的表达式,返回第一个的计算结果。博主提供了Java、Python和JavaScript的解决方案,通过正则表达式找到所有可能的表达式,然后选择最长的进行计算。由于是简单表达式,所以未处理运算符优先级问题。
摘要由CSDN通过智能技术生成

获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。
题目描述
提取字符串中的最长合法简单数学表达式,字符串长度最长的,并计算表达式的值。如果没有,则返回 0 。

  • 简单数学表达式只能包含以下内容:

0-9数字,符号±*

说明:
1.所有数字,计算结果都不超过long
2.如果有多个长度一样的,请返回第一个表达式的结果
3.数学表达式,必须是最长的,合法的
4.操作符不能连续出现,如 ±-+1 是不合法的

输入描述
字符串

输出描述
表达式值

题目解析
此题要求从给定字符串中找出最长的合法简单数学表达式并计算其值。合法表达式由数字和运算符(+、-、*)组成,且操作符不能连续出现。若无合法表达式,则返回0。如果有多个长度相同的最长表达式,返回第一个。

Java算法源码

  • 0
    点赞
  • 200
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值