zoukankan      html  css  js  c++  java
  • [leetcode]32. Longest Valid Parentheses最长合法括号子串

    Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring.

    Example 1:

    Input: "(()"
    Output: 2
    Explanation: The longest valid parentheses substring is "()"

    Example 2:

    Input: ")()())"
    Output: 4
    Explanation: The longest valid parentheses substring is "()()"

    题意:

    给定一个括号序列,找出最长的合法括号子串。

    Solution1:  Two pointers(fast&slow)  + Stack

    It's just like using [start+1...i] to maintain a window where contains longest valid parentheses

    code:

     1 /*
     2 Time: O(n). We traverse the given input
     3 Space: O(n). Worse case, input is all contained '(', then there will be n chars stored in the stack
     4 */
     5 class Solution {
     6     public int longestValidParentheses(String s) {
     7         int result = 0;
     8         int start = -1;
     9         Stack<Integer> stack = new Stack<>(); // index of every char
    10         
    11         for(int i = 0; i < s.length(); i++){
    12             char c = s.charAt(i);
    13             if(c == '('){
    14                 stack.push(i);   
    15             }else if( c == ')'){
    16                 if(stack.isEmpty()){
    17                     // no matching left '( '
    18                     start = i;
    19                 }else{
    20                     stack.pop();
    21                     if(stack.isEmpty()){
    22                         result = Math.max(result, i - start);
    23                     }else{
    24                         result = Math.max(result, i - stack.peek());
    25                     }
    26                 }
    27             }
    28         }
    29         return result;
    30     }
    31 }
  • 相关阅读:
    java 基础语法 2
    hdu4570Multi-bit Trie
    poj1244Slots of Fun
    二维凸包模板
    花神的数论题(数位dp)
    poj1113Wall(凸包)
    poj1066Treasure Hunt(线段相交)
    poj1039Pipe(直线交点、叉积)
    hdu4588Count The Carries
    hdu2475Box(splay树形转线性)
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/9206903.html
Copyright © 2011-2022 走看看