滴滴 数据分析 笔试 第二题
原题
输入:一元一次方程字符串,如"2x-4=0", 可能有空格,等式右侧一定=0
输出:解字符串,格式如"x=2"
楼主第二题调了40分钟还是60%真的哭了,想到的特殊情况就是 x+10=0, 10x=0,4.4x-5.5=0这样的了。不知道有没有人100%啊。
import re s = input() if "+" in s: arr = s.split("+") a = re.search('\d*\.*\d*', arr[0]).group() b = re.search('\d+\.*\d*', arr[1]).group() if a: r = round(-float(b)/float(a), 1) else: r = round(-float(b), 1) elif "-" in s: arr = s.split("-") a = re.search('\d*\.*\d*', arr[0]).group() b = re.search('\d+\.*\d*', arr[1]).group() if a: r = round(float(b)/float(a), 1) else: r = round(float(b), 1) else: r="0.0" print("x="+str(r))
需要考虑 -x+4=0, 5-x=0这种情况
import re s = input() s = s.replace(" ","") s = s.split("=")[0] s1 = s.split("x")[0] s2 = s.split("x")[1] if not s2: s2 = re.search('(.*)\+|\-', s1).group(1) if s2: s1 = re.search(s2+'(.*)', s1).group(1) else: s2 = "0" # a if "-" in s1: a_base = -1 else: a_base = 1 a = re.search('\d+\.*\d*', s1) if a: a=float(a.group())*a_base else: a=a_base # b if "-" in s2: b_base = -1 else: b_base = 1 b = re.search('\d+\.*\d*', s2) if b: b=float(b.group())*b_base else: b=b_base res = round(-b/a, 1) print("x="+str(res))