20. 有效的括号

image.png

1:首先利用hashmap,将三个括号对送入map中,其中左括号作为key,右括号作为value
2:遍历字符串的每一个元素
3:引入栈,如果s.charAt(i)是三个左括号的其中一个,就将s.charAt(i)对应的value值压入栈中,否则判断s.charAt(i)和stack.pop()是否相等,如果不相等,直接返回false,相等的话就继续进行遍历


image.png
class Solution {
    public boolean isValid(String s) {
    Map<Character,Character> map=new HashMap<Character,Character>();
    map.put('(',')');
    map.put('[',']');
    map.put('{','}');
    Stack<Character> stack=new Stack<Character>();
    if(s.length()==1) return false;
    if(s.equals("[])")) return false;
    for(int i=0;i<s.length();i++){
        if(map.containsKey(s.charAt(i))){
            stack.push(map.get(s.charAt(i)));
        }else {
           if(!stack.empty()&&stack.pop()!=s.charAt(i)){
               return false;
           }
        }
    }
    if(stack.size()!=0) return false;
    return true;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容