zoukankan      html  css  js  c++  java
  • LeetCode -- Valid Parenthese

    Question:

    Given a string containing just the characters '('')''{''}''[' and ']', determine if the input string is valid.

    The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

    Analysis:

    问题描述:给出一个字符串,包含'('')''{''}''[' and ']'确定它是否是有效地匹配括号。

    思路:一看到括号匹配问题肯定想到用栈。遇到左括号就进栈;遇到右括号若栈顶元素与之匹配则POP出栈顶元素,若不匹配则返回false。

    注意特殊情况:如"{}[]()", 或者“{[}]”, 或者“{{}}{{”等情况。

    Answer:

    public class Solution {
        public boolean isValid(String s) {
            char[] ch = s.toCharArray();
            int n = ch.length;
            if(ch.length == 0 || ch.length % 2 != 0)
                return false;
            if(ch[0] == '}' || ch[0] == ']' || ch[0] == ')')
                return false;
            Stack<Character> st = new Stack<Character>();
            st.add(ch[0]);
            int i = 1;
            while(!st.isEmpty() && i < n) {
                if(ch[i] == '{' || ch[i] == '[' || ch[i] == '(') {
                    st.add(ch[i]);
                    i++;
                } else {
                    if(st.isEmpty())
                        return false;
                    char c = st.pop();
                    if(c == '{' && ch[i] != '}' || c == '[' && ch[i] != ']'
                            || c == '(' && ch[i] != ')')
                        return false;
                    i++;
                    if(i < n && (ch[i] == '{' || ch[i] == '[' || ch[i] == '(')) {
                        st.add(ch[i]);
                        i++;
                    } 
                }
            }
            System.out.println(i +" " +st.size());
            if(!st.isEmpty() || i < n - 1)
                return false;
            
            return true;
        }
        
    }
  • 相关阅读:
    JavaScript 操作 DOM 元素
    字节数
    如何判断校准曲线是否合格
    [WPF]MVVM模式下如何在后台cs中调用绑定命令
    逆对数antilog0.03376如何计算
    未能解析此远程名称:'nuget.org' 的解决方法
    【WPF】WPF ScorllView触摸滚动实现
    【VS2017】清除NuGet下载旧版本缓存
    【UWP】截图
    test
  • 原文地址:https://www.cnblogs.com/little-YTMM/p/4872737.html
Copyright © 2011-2022 走看看