E题官方题解,了解一下?

这里是E题的出题人~~~

至比赛结束,共有334名同学尝试提交过这一道题目,其中有201名同学通过了这道题目,得到了100分。

------这---是---分---割---线------

题解:
我们先考虑如何通过80%的数据。
记录一个量,cnt,表示目前未匹配的左括号数量。对于每个左括号,我们将cnt+1,对于每个右括号,我们将cnt-1。
如果在某一个位置cnt小于0,则表示这个位置的右括号前面没有一个与之匹配的左括号,我们需要从后面找一个左括号与它交换。(读者可以思考一下为什么这样做)
不难看出,如同例二的数据,达到了时间复杂度的上限,无法通过本题。
然而,聪明的读者可以发现我们这个做法的瓶颈——为了寻找一个左括号,我们使用了过多的时间。
不妨从两端向中间进行上述操作,从左到右,cnt1记录的是未匹配的左括号数量,这样我们可以找到第一个未匹配的右括号;从右到左,cnt2记录的是未匹配的右括号数量,这样我们可以找到第一个未匹配的左括号。最后,我们只需要将这两个括号交换一下就好了嘛。
全部评论
qaq
点赞 回复 分享
发布于 2018-09-06 23:07
然而E是原题……qwq
点赞 回复 分享
发布于 2018-09-06 22:58

相关推荐

求问!考研下岸,打算参加春招,我这个bg能进啥厂,或者需要搞点深度项目再投吗
Java抽象带篮子_...:直接海投,可以看看我的考研失利速成冲春招贴,里面详细写了简历怎么写,学哪些项目可以速成
点赞 评论 收藏
分享
卡卡罗特ovo:说起云智我就来气,约好了一面,结果面试官没来,ssob上问hr也未读,我还是专门请了半天假在家面试,恶心死了
点赞 评论 收藏
分享
SHC2:春招先狠狠投递,然后你看看能不能申请香港新加坡的一年制master,花不了多少钱,或者现在赶紧去刷一段实习。HR专业考研没必要
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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