8.23腾讯技术研究类和数据分析 笔试

第一题 括号匹配,用了两种方法,第三个样例一直不对,提交了之后也只过了10%的case,求解哪里出错了呢?
附上我的辣鸡代码,思路没变,用了两种写法
s=")([]]([(](])))([]()()]([][[)[()[)]([[(])][][[[([)]"
left_round=0
left_square=0
ans=0
for x in s:
    if x=='(':
        left_round+=1
    elif x==')':
        if left_round<1:
            ans+=1
        else:
            left_round-=1
    elif x=='[':
        left_square+=1
    else:
        if left_square<1:
            ans+=1
        else:
            left_square-=1
ans+=left_round+left_square
print(ans)
strs=")([]]([(](])))([]()()]([][[)[()[)]([[(])][][[[([)]"
strs=input()
flag=1
stack_round=[]
stack_square=[]
ans=0
for x in strs:
    if x=="(":
        stack_round.append(x)
    elif x=="[":
        stack_square.append(x)
    elif x==")":
        if len(stack_round)==0:
            ans+=1
        else:
            stack_round.pop()
    elif x=="]":
        if len(stack_square)==0:
            ans+=1
        else:
            stack_square.pop()
print(ans,len(stack_round),len(stack_square))
ans+=(len(stack_round)+len(stack_square))
print(ans)



#笔试题目#
全部评论
搞不懂到底要不要处理多组输入情况,用while True  try excpt 这种
点赞 回复
分享
发布于 2020-08-23 23:54
我也是这么做的,结果一样,ans+2就30%了
点赞 回复
分享
发布于 2020-08-24 00:36
滴滴
校招火热招聘中
官网直投
你得考虑不同的括号的话,当左右小括号中间夹一个中括号,那个中括号没法和外面的中括号配对了
点赞 回复
分享
发布于 2020-08-26 04:57
输如为 ([)] 这个方法的输出是0把,答案应该是2
点赞 回复
分享
发布于 2020-08-26 08:02
求问楼主,技术研究和数据分析是两个岗位可以同时投递的嘛?lz投的哪个事业群啊?
点赞 回复
分享
发布于 2020-08-26 12:22
圆括号和方括号应该放在一个栈里吧,然后左括号入栈,右括号匹配最顶端的括号
点赞 回复
分享
发布于 2020-09-06 10:41
真的恶心,
点赞 回复
分享
发布于 2020-09-06 22:05

相关推荐

3 9 评论
分享
牛客网
牛客企业服务