美团笔试8.22“阔豪”序列计算python秒解

当时有点想用这个的想法,但是一直在那死解回溯计算,还是没做出来,叹气。
配合eval()函数秒解,现在巨后悔为什么不尝试一下。

题目描述:
输入一个括号序列(())()。
单独成对的括号()则表示为整数2。
(())则表示(2),如果外层还有一个括号则将内部的数字加一,所以(2) 得到3。
如果两个标准括号相连,例如()(), 则表示2*2 = 4。

输入'(())()' --> (2+1)*2 = 6
输入 '(()())(())' -->(1+2*2)*(2+1) = 15

把括号序列直接转化为其要求的str表达式,然后用eval函数直接出结果:
代码如下:

import re
a = input()
b = re.sub('\(\)', '(2)', a)
while True:
    tmp = re.sub('\)\)', ')+1)', b) #由于替代))的时候只能替代某些部分 但是我们需要全部转换完毕
    if tmp == b:
        break
    else:
        b = tmp
b = re.sub('\)\(', ')*(', b)
res = eval(b)
print(res)

测试输入输出:

'(())()' --> '((2)+1)*(2)' --> 6
'(()())(())' --> '((2)*(2)+1)*((2)+1)' --> 15

觉得有趣就点个赞吧!

#美团笔试题##美团##笔试题目#
全部评论
迭代法就能做出来,思路也很简单
点赞 回复 分享
发布于 2021-08-30 12:54
也可以考虑用stack,更简单
点赞 回复 分享
发布于 2021-08-26 10:50
秀啊
点赞 回复 分享
发布于 2021-08-22 19:11

相关推荐

04-02 10:09
门头沟学院 Java
用微笑面对困难:这里面问题还是很多的,我也不清楚为啥大家会感觉没啥问题。首先就是全栈开发实习9个月的内容都没有java实习生的内容多,1整个技术栈没看出太核心和难点的内容,感觉好像被拉过去打杂了,而且全栈基本上很容易被毙。里面能问的bug是在太多了比如L:继承 BaseMapper 可直接使用内置方法’。请问你的 BaseMapper 是如何扫描实体类注解如果瞬时产生 100 个上传任务,MySQL 的索引设计是否会有瓶颈?你做过分库分表或者索引优化吗?全栈的内容可以针对动态难点去搞,技能特长写在下面吧,你写了这么多技能,项目和实习体现了多少?你可以在项目里多做文章然后把这个放下去,从大致来看实习不算太水,有含金量你也要写上内容针对哨兵里面的节点变化能问出一万个问题,这个很容易就爆了。
提前批简历挂麻了怎么办
点赞 评论 收藏
分享
评论
5
19
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务