栈 ——应用练习:有效的括号
目录
## 题目简述:
## 题解举例:(Java
class Solution {
public boolean isValid(String s) {
// 实例化栈
Stack<Character> stack = new Stack<>();
// 遍历输入内容
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
// 判断是否为左侧括号
if(c == '(' || c == '[' || c == '{'){
// 若是则入栈
stack.push(c);
}else {
// 否则说明为右侧括号,先判断栈内是否为空
if(stack.isEmpty())
// 若栈内为空则不匹配
return false;
// 若不为空则出栈
char topC = stack.pop();
// 判断出栈的栈顶元素是否为对应匹配的左侧括号
if(c == ')' && topC !='('){
return false;
}else if(c == ']' && topC !='['){
return false;
}else if(c == '}' && topC !='{'){
return false;
}
}
}
// 若全部匹配,则判断栈内是否有剩余元素
return stack.isEmpty();
}
}
资料来源:慕课网《玩转数据结构》、LeetCode-cn