leetcode刷题
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: “()” 输出: true
示例 2:
输入: “([)]” 输出: false
解题思路:有效括号采用的是栈Stack和哈希HashMap;
思想就是:首先s.length是奇数的话,一定不是成对的括号;
hashmap中存放的是key=’(’ ,value=’)’ key和value存放的是一对完整的括号;然后我们存入的时候,是遇见左半边的括号( [ { 就入栈,然后遇见右半边的话就比较,s.charAt(i)是否等于stack.pop()栈顶元素,如果不等于直接返回false了,最后判断一下stack是否空,因为如果不是成对的话,一定有元素没有被弹出;如果是成对的话,stack一定是空的。
class Solution {
public boolean isValid(String s) {
if(s.length()==0) return true