标题:20. 有效的括号 难度:简单
描述:
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。
示例 1:
输入: s = “()” 输出: true
示例 2:
输入: s = “()[]{}” 输出: true
示例 3:
输入: s = “(]” 输出: false
示例 4:
输入: s = “([)]” 输出: false
示例 5:
输入: s = “{[]}” 输出: true
提示:
1 <= s.length <= 104 s 仅由括号 ‘()[]{}’ 组成
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-parentheses 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-parentheses 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
执行结果: 通过 执行用时: 1 ms, 在所有 Java 提交中击败了98.90%的用户 内存消耗: 36.6 MB, 在所有 Java 提交中击败了40.06%的用户 通过测试用例: 91 / 91
题解:
class Solution {
public boolean isValid(String s) {
if(s.length() % 2 != 0){
return false;
}
List list =new ArrayList();
Map<Character,Character> map = new HashMap();
map.put('(',')');
map.put('[',']');
map.put('{','}');
for(int i = 0;i < s.length();i++){
char item = s.charAt(i);
if(item == ')' || item == '}'||item == ']'){
int prevIndex = list.size()-1;
if(prevIndex < 0 || item != map.get(list.get(prevIndex))){
return false;
}else{
list.remove(prevIndex);
}
}else{
list.add(item);
}
}
return list.size() == 0;
}
}
|