题解 | #最长的括号子串#

最长的括号子串

http://www.nowcoder.com/practice/45fd68024a4c4e97a8d6c45fc61dc6ad

使用栈来存储索引,栈顶存储的是最后一个被匹配的‘(’前面的索引,所以得到的结果就是当前的索引(‘)’)减去栈顶的索引,求最大值。为了初始化,避免第一个是‘)’造成异常,初始化栈顶为-1
import java.util.*;


public class Solution {
    /**
     * 
     * @param s string字符串 
     * @return int整型
     */
    int max=0;
    public int longestValidParentheses (String s) {
        // write code here
        int n=s.length();
        if(n<=1){
            return 0;
        }
        char []c=s.toCharArray();
        Deque<Integer> stack=new LinkedList<>();
        stack.push(-1);
        for(int i=0;i<n;i++){
            if(c[i]=='('){
                stack.push(i);  //push的是坐标
            }
            else{
                stack.pop();
                if(stack.isEmpty()){
                    stack.push(i);        //表示能匹配的左括号前面的那个元素
                }
                else{
                    max=Math.max(max,i-stack.peek());  //stack 保存的是最后一个被匹配的’(‘的前面的索引                }
            }
        }
  }
        return max;
    }
   
}


全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利&nbsp;有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的&nbsp;真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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