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)



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

相关推荐

10-14 21:00
门头沟学院 Java
吃花椒的狸猫:这个人说的倒是实话,特别是小公司,一个实习生哪里来的那么多要求
点赞 评论 收藏
分享
评论
3
9
分享

创作者周榜

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