qzhouayi 假如我们要帮两个小学生对比数学作业答案。他们的答案都是有理数(either小数or整数,可以有负数,但是没有分数)。 我们要对比两个人的答案,然后回答这两个数在数学意义上是不是一样的。 这两个数都是合法的数学数字,e.g. "010" is considered 不合法,"--1" is illegal but "-1.0" and "-1.0000" is legal. 实现这个函数: bool is_equal(string a, string b). 可以用任何语言
HikariLan function isEqual(one, another){ return +one==+another } isEqual("-1.0000", "-1.0") 如果没理解错的话这个题其实就是把string转换成number然后对比一下就行了
MingLLuo 主要是小数字符串转化为浮点数的问题,一般在判断大于或者小于,会考虑他们差的bias,我们把bias设置成一个能接受的大小(maybe 0.0001)即可;若判断是否相等,应该需要借助字符串的分割,对比整数部分与小数部分,当然,还需要一些边界情况的优化👀 叠个甲:不一定对
efassds def simplify(a:str) -> str: st = 0 n = len(a) if a[0] == '+': st += 1 p = a.find('.') if p == -1: return a[st:] ed = n - 1 while ed >= p and a[ed] in ('.', '0'): ed -= 1 return a[st:ed+1] def isEqual(a:str, b:str) -> bool: return simplify(a) == simplify(b)
qzhouayi hsxfjames 基本就是这样 你楼上的代码看起来没问题 不过用python的strip会简洁很多 但是gpt做的不太好 它写出来后我不停的给它举反例 最后他才终于写出来去勉强能用的