有效的括号

前言

本文主要是【栈】——有效的括号的文章,如果有什么需要改进的地方还请大佬指出⛺️

作者简介:大家好,我是听风与他
☁️博客首页:CSDN主页听风与他
每日一句:狠狠沉淀,顶峰相见

目录

    • 前言
    • 文章末尾

  • 给定一个只包括 '('')''{''}''['']' 的字符串 s ,判断字符串是否有效。

    有效字符串需满足:

    1. 左括号必须用相同类型的右括号闭合。
    2. 左括号必须以正确的顺序闭合。
    3. 每个右括号都有一个对应的相同类型的左括号。

20. 有效的括号 - 力扣(LeetCode)

package practice;

import java.util.HashMap;
import java.util.Map;
import java.util.Stack;

public class 有效的括号 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s = "()";
		System.out.println(isValid(s));
	}
	
    public static boolean isValid(String s) {
    	char[] a = s.toCharArray();
    	if(s.length()%2!=0) {
    		return false;
    	}
    	Map<Character, Character> map = new HashMap<>();
    	map.put('}', '{');
    	map.put(')', '(');
    	map.put(']', '[');
    	Stack<Character> stack = new Stack<>();
    	for(int i=0;i<a.length;i++) {
    		if(map.containsKey(a[i])) {
    			if(stack.isEmpty()||stack.peek()!=map.get(a[i])) {
    				return false;
    			}
    			stack.pop();
    		}else {
    			stack.push(a[i]);
    		}
    	}
    	return stack.isEmpty();
    }

}

文章末尾

在这里插入图片描述

你可能感兴趣的:(java,栈)