9.11VIVO后端研发的笔试 求个ac答案

VIVO后端第一题,就是拆礼物那个题,应该很多小伙伴都做出来了。

当时自己做的是90%通过率。

自己做的还是不对。

求个AC代码。感谢~

题目描述如下
#vivo#
全部评论
你倒着处理,用栈处理括号配对试试
点赞 回复 分享
发布于 2019-09-13 17:39
题目描述 小v所在的公司即将举行年会,年会方案设计过程中必不可少的一项就是抽奖活动。小v在本次活动中被委以重任,负责抽奖活动的策划;为了让中奖的礼物更加精美且富有神秘感,打算采用礼品盒来包装奖品,此时小v发挥了自己的创意想捉弄一下获奖的同事,便采取了多重包装来包装奖品。 现给出一个字符串,并假定用一对圆括号( )表示一个礼品盒,0表示奖品,你能据此帮获奖者算出最少要拆多少个礼品盒才能拿到奖品吗? 输入描述: 一行字符串,仅有'('、')'、'0' 组成,其中一对'(' ')'表示一个礼品盒,‘0’表示奖品;输入的字符串一定是有效的,即'(' ')'一定是成对出现的。 输出描述: 输出结果为一个数字,表示小v要拆的最少礼品盒数量 示例1输入输出示例仅供调试,后台判题数据一般不包含示例 输入 复制 (()(()((()(0))))) 输出 复制 5 示例2输入输出示例仅供调试,后台判题数据一般不包含示例 输入 复制 (((0))) 输出 复制 3
点赞 回复 分享
发布于 2019-09-13 17:19
最简单的做法就是一直替换连续成对'()'为空直到没有成对的,然后就是长度/2就可以了
点赞 回复 分享
发布于 2019-09-13 17:23
我的思路,从前往后,遇到'(',count++,遇到')',count--,遇到0,break。输出count。
点赞 回复 分享
发布于 2019-09-13 17:26
初始化计数为0,读取字符遇到左括号+1 遇到右括号-1,直到遇到0停止
点赞 回复 分享
发布于 2019-09-13 17:26
def fun(s):     count = 0     for i in range(len(s)):         if s[i] == '0':             return count         elif s[i] =='(':             count += 1         else:             count -= 1
点赞 回复 分享
发布于 2019-09-13 17:27
.....直接算到0之前的做括号数-右括号数
点赞 回复 分享
发布于 2019-09-13 17:28
我也是通过90%,把数组长度改成1000,就AC了。
点赞 回复 分享
发布于 2020-06-03 18:33

相关推荐

投递中兴通讯等公司10个岗位
点赞 评论 收藏
分享
点赞 5 评论
分享
牛客网
牛客企业服务