☰
A.每日一题:1021. 删除最外层的括号
2026/10/20 11:13:50 网站建设 项目流程

题目链接:1021. 删除最外层的括号(简单)

算法原理:

解法:一次遍历

2ms击败87.52%

时间复杂度O(N)

思路就很简单,先找到“原语”,然后去掉两边的括号即可,为了降低时间复杂度,我们可以用拼接的方式保证一次遍历就解决,那么在拼接时就要判断,当前的 “(”或者“)”,是不是要移除的,或者说无需拼接的

①怎么判断“原语”?遇到“(”,cnt++,遇到“)”,cnt--,当cnt=0时,当前字符串就是“原语”

②怎么判断是否跳过拼接?也是当cnt=0 的时候~~

Java代码:

class Solution { //1021. 删除最外层的括号 public String removeOuterParentheses(String ss) { StringBuffer cur=new StringBuffer(); char[] s=ss.toCharArray(); int cnt=0; for(char c:s){ if(c=='('){ cnt++; if(cnt-1!=0) cur.append(c); }else{ cnt--; if(cnt!=0) cur.append(c); } } return cur.toString(); } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询