gpt4 book ai didi

java - BODMAS 分配

转载 作者:行者123 更新时间:2023-12-01 16:08:50 27 4
gpt4 key购买 nike

我正在解决这样的问题 -

实现一个计算由以下内容组成的表达式的函数以下操作数:“(”、“)”、“+”、“-”、“*”、“/”。中的每个数字表达式可能很大(与由字符串表示的一样大)1000 位)。 “/”(即除法)操作数返回整数商。

测试用例就像 -

( ( ( 10000000000000000000000001231234448563465435434723854278423/1111111111234623874627 ) * 2342384523 + 123124 - 34534534 ) * (1231263123242346 + 223423234346 * 234236536 ) )

并且可能更长。

我不想使用像 JEP 之类的表达式求值器/解析器的外部库。

我沿着 BigInteger 的思路思考,然后发现 BigInteger 并不像 Integer 那样评估表达式。我还知道解析是一个选项,我必须模拟 BODMAS 行为。我想知道是否有其他方法可以解决这个问题,如果没有,希望有一些关于如何实现此方法的指示.

我不是在寻找现成的解决方案,只是在寻找自己找到解决方案的方向。

最佳答案

您可以创建一个recursive descent parser计算表达式并使用 StringTokenizer作为 spimple 词法分析器来分割行。您可以使用delim = "()/*-+"returnDelims = true。这将返回数字和分隔符,在您的情况下,它们是您需要评估的运算符和括号。

关于java - BODMAS 分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1960881/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com