哔哩哔哩笔试(策略算法岗)

B站笔试策略/算法岗的,计算器那题有没有大佬展示一下自己的代码,我自己百分之25没调出来是哪里错#笔试题目##哔哩哔哩#
全部评论
def cheng(a): temp = 1 for i in a: temp *= int(i) return temp def jia(b): return sum(b) def jian(c): total = int(c[0]) for i in c[1:]: total -= int(i) return total while 1: string = input() if string == 'END': break res = [] final = [] jia_list = string.split('+') for item in jia_list: jian_list = item.split('-') res.append(jian_list) for j in res: if len(j) == 1: final.append(cheng(j[0].split('*'))) else: for k, v in enumerate(j): j[k] = cheng(v.split('*')) final.append(jian(j)) print(jia(final)) 唯一AC的一道题。。写的不美观,将就着看吧
点赞 回复 分享
发布于 2018-09-21 17:20
没收到笔试通知😱
点赞 回复 分享
发布于 2018-09-21 18:04
投机取巧的做法,使用Python3中eval函数: Input = [] s = input() while s != 'END': Input.append(s) s = input() for i in range(len(Input)): ret = eval(Input[i]) print(ret)
点赞 回复 分享
发布于 2018-09-22 00:07
def solve(s):     stack = []     sign = ''     for i in range(len(s)):         if(s[i].isdigit()):             intv = int(s[i])             if(sign == '') or (sign == '+'):                 stack.append(intv)             elif(sign == '-'):                 stack.append(-intv)             elif(sign == '*'):                 temp = stack.pop()                 stack.append(temp*intv)         else:             sign = s[i]     print(sum(stack)) while(True):     string = input()     if string == 'END':         break     solve(string) 我用栈的思想,为什么只有75%呢,楼主求解啊
点赞 回复 分享
发布于 2018-09-22 15:16

相关推荐

希望被捞的猫头鹰很理智:大概率待遇低怕硕士跑路
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务