leetcode20: Valid Parentheses

版权声明:文章为作者原创,若要转载请获得作者同意。尊重版权,从你我做起! https://blog.csdn.net/qq_37768971/article/details/88022674

一、题目要求:

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

An input string is valid if:

  1. Open brackets must be closed by the same type of brackets.
  2. Open brackets must be closed in the correct order.

Note that an empty string is also considered valid.

二、题目分析:

1.使用栈的数据结构方式

2.先判断是否是‘(’  、‘[’、'{',是的话依次入栈,不是的话则pop栈内元素,判断是否匹配

3.注意所有输入元素结束后要判断栈内是否还有元素。

三、具体代码:

package IMUHERO;

import java.util.Stack;

class Solution {
    public boolean isValid(String s) {
        Stack<Character>stack=new Stack<>();
        for (int i=0;i<s.length();i++){
            char a=s.charAt(i);
            if (a=='('||a=='['||a=='{'){
                stack.push(a);
            }
            else {
                if (stack.isEmpty())return false;
                char topStack=stack.pop();
                if (a ==')' &&topStack!='(') return false;
                if (a ==']' &&topStack!='[') return false;
                if (a =='}' &&topStack!='{') return false;
            }
        }if (!stack.isEmpty())return false;else return true;
    }
}

main函数用于测试功能是否正确:

package IMUHERO;

public class main {
    public static void main (String[]args){
        Solution s=new Solution();
        System.out.println(s.isValid("()"));
        System.out.println(s.isValid( "()[]{}"));
        System.out.println(s.isValid("(]"));
        System.out.println(s.isValid("([)]"));
        System.out.println(s.isValid("{[]}"));
    }
}

result:

true
true
false
false
true

________________________________________________________

与leetcode上的结果相同:

猜你喜欢

转载自blog.csdn.net/qq_37768971/article/details/88022674
今日推荐