leetcode:有效地括号
创始人
2024-06-03 15:35:39

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

有效字符串需满足:

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

输入:s = “()”
输出:true
示例 2:

输入:s = “()[]{}”
输出:true
示例 3:

输入:s = “(]”
输出:false
提示:

1 <= s.length <= 104
s 仅由括号 ‘()[]{}’ 组成
Related Topics

字符串

方法一:使用LinkedHashMap

class Solution {public boolean isValid(String s) {Map map = new HashMap<>(){{put('(', ')'); put('{', '}');put('[', ']'); put('?', '?');}};if (s.length() <= 1 || !map.containsKey(s.charAt(0))) {return false;}LinkedList linkedList = new LinkedList<>(){{add('?');}};for (char c : s.toCharArray()) {if (map.containsKey(c)) {linkedList.addLast(c);} else if (c != map.get(linkedList.removeLast())) {return false;}}return linkedList.size() == 1;}
}

方法二:使用ArrayList

class Solution {public boolean isValid(String s) {Map map = new HashMap<>(){{put('(', ')'); put('{', '}');put('[', ']'); put('?', '?');}};if (s.length() <= 1 || !map.containsKey(s.charAt(0))) {return false;}List list = new ArrayList<>(){{add('?');}};for (char c : s.toCharArray()) {if (map.containsKey(c)) {list.add(c);} else if (c != map.get(list.remove(list.size() - 1))) {return false;}}return list.size() == 1;}
}

相关内容

热门资讯

“刨猪汤”这场“泼天的流量”如... 2026年开年最热闹的“按猪之约”来袭!重庆合川网友 “呆呆” 因担心年迈父亲无力按猪,1月9日发布...
最新或2023(历届)安徽马鞍... 最新或2023(历届)安徽马鞍山市高考状元,安徽马鞍山市文科理科和高考状元 记者了解到,马鞍山市今年...
最新或2023(历届)湖南株洲... 最新或2023(历届)湖南株洲市高考状元,湖南株洲市文科理科和高考状元 6月25日,高考成绩揭晓,株...
最新或2023(历届)湖北荆州... 最新或2023(历届)湖北荆州市高考状元,湖北荆州市文科理科和高考状元荆州文科状元肖雅欣  荆州新闻...
大型撞击造成月幔“蒸发”?嫦娥... 月球正面与背面的演化差异,是长期悬而未决的科学谜题。我国科研人员通过对嫦娥六号月球背面样品的高精度钾...