LeetCode20——有效的括号(栈应用)

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例 1:

输入: "()"
输出: true

示例 2:

输入: "()[]{}"
输出: true

示例 3:

输入: "(]"
输出: false

示例 4:

输入: "([)]"
输出: false

示例 5:

输入: "{[]}"
输出: true

算法思想:检验算法中可以设置一个栈,每读入一个括号,若是左括号,则直接入栈,等待相匹配的同类型右括号;若读入的是右括号,且与当前栈顶的左括号同类型,则二者匹配,将栈顶的左括号出栈,否则属于不合法的情况,另外,如果输入序列已经读完,而栈中仍然有等待匹配的左括号,或者读入了一个右括号,而栈中已无等待匹配的同类型括号,均不属于合法的情况。当输入序列和栈同时变为空时,说明所有括号完全匹配。

import java.util.*;

public class Bracket {
	 public static boolean isValid(String s) {
	        if(s==null)  return true;
	        
	        char[] ch=s.toCharArray();//将字符串对象转换成字符数组
	        Stack stack=new Stack();//创建一个Character类型的栈实例
	        for(int i=0;i

你可能感兴趣的:(数据结构,Java)