zoukankan      html  css  js  c++  java
  • 20. Valid Parentheses

    一、题目

      1、审题

        

       2、分析:

        返回括号组成的字符串其中的括号是否都能正确闭合。

    二、解答

      1、分析:

        方法一:

          用栈实现。

          左括号进栈;

          右括号时栈顶出栈并判断是否匹配。最终判断栈是否为空即可。

      

    class Solution {
        public boolean isValid(String s) {
    
            Stack<Character> stack = new Stack<Character>();
            int len = s.length(), index = 0;
    
            while(index < len) {
                char c = s.charAt(index++);
                if(c == '(' || c == '[' || c == '{')
                    stack.push(c);
                else if(c == ')') {
                    if(!stack.isEmpty() && stack.peek() == '(')
                        stack.pop();
                    else
                        return false;
                }
                else if(c == ']') {
                    if(!stack.isEmpty() && stack.peek() == '[')
                        stack.pop();
                    else
                        return  false;
                }
                else if(c == '}') {
                    if(!stack.isEmpty() && stack.peek() == '{')
                        stack.pop();
                    else
                        return false;
                }
            }
    
            return  stack.isEmpty();
        }
    }

        方法二:

          用栈实现。

          左括号时,入栈对应的右括号;

          右括号时,栈顶出栈并判断是否与该右括号一致

      

    public class Solution {
        public boolean isValid(String s) {
         
            Stack<Character> stack = new Stack<Character>();
            for(char c: s.toCharArray()) {
                
                if(c == '(') 
                    stack.push(')');
                else if(c == '[')
                    stack.push(']');
                else if(c == '{')
                    stack.push('}');
                else if(stack.isEmpty() || stack.pop() != c)
                    return false;
            }
    
            return stack.isEmpty();
        }
    }
  • 相关阅读:
    ASP.NET操作文件大全
    Jquery1.7中文文档提供下载了
    修改server2005数据库的区分大小写设置
    SQL SERVER 设置自动备份和删除旧的数据库文件
    ASP.NET关闭下载窗口
    DB2通用分页存储过程
    ASP.NET生成压缩文件(rar打包)
    上传文件实体类
    【Demo 0104】注册/注销热键
    【Demo 0018】SEH结束处理程序
  • 原文地址:https://www.cnblogs.com/skillking/p/9411544.html
Copyright © 2011-2022 走看看