有效的括号(Java实现)

题目描述:
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
(详情请见leetcode:https://leetcode-cn.com/problems/valid-parentheses/)

方法一:用一个栈存放字符,当(’,’{’,’['或栈为空时可以直接存入栈中,否则则需要取出栈顶元素看是否与当前字符匹配,不匹配直接返回false,匹配跳到下一个字符继续操作(从栈取出的元素不放回)

class Solution {
    public boolean isValid(String s) {
    	//声明一个map存放匹配关系
        HashMap map = new HashMap<>();
        map.put('(',')');
        map.put('{','}');
        map.put('[',']');
        //声明一个链表结构的栈
        LinkedList stack = new LinkedList<>();
        for(int i = 0;i

方法二:判断字符串是否包含"()","[]","{}",包含将他们用""(空字符串)替换,最后判断字符串是否为""(空字符串)

class Solution {
    public boolean isValid(String s) {
        while(s.contains("()") || s.contains("{}") || s.contains("[]")){
            s = s.replace("()","");
            s = s.replace("{}","");
            s = s.replace("[]","");
        }
        System.out.println(s);
        return s.equals("");
    }
}

你可能感兴趣的:(数据结构与算法)