【栈】
【栈】
题目传送门解法(栈):算法原理 定义一个栈
如果是右括号,就放进栈中
如果是左括号,就判断这个字符 和 栈顶元素(同时出栈)是否匹配
如果不匹配就返回false
那么如果匹配那么就会出栈
最终栈为空 则返回 true
栈 不为空 就返回 false
代码:自己写的(思路清晰):代码语言:javascript代码运行次数:0运行复制 class Solution {
p
【栈】
算法原理
定义一个栈 如果是右括号,就放进栈中 如果是左括号,就判断这个字符 和 栈顶元素(同时出栈)是否匹配 如果不匹配就返回false 那么如果匹配那么就会出栈 最终栈为空 则返回 true 栈 不为空 就返回 false
自己写的(思路清晰):
代码语言:javascript代码运行次数:0运行复制 class Solution {
public boolean isValid(String s) {
if(s.length() % 2 != 0){
return false;
}
Stack<Character> stack = new Stack<>();
for(char c : ()){
if(c == '(' || c == '[' || c == '{'){
stack.push(c);
}
if(stack.isEmpty()){
return false;
}
if(c == ')'){
if(stack.peek() == '('){
stack.pop();
}else{
return false;
}
}else if(c == ']'){
if(stack.peek() == '['){
stack.pop();
}else{
return false;
}
}else if(c == '}'){
if(stack.peek() == '{'){
stack.pop();
}else{
return false;
}
}
}
return stack.isEmpty();
}
}
优化后:
代码语言:javascript代码运行次数:0运行复制 class Solution {
public boolean isValid(String s) {
if(s.length() % 2 != 0) return false;
Stack<Character> stack = new Stack<>();
for(char c : ()){
if(c == '(' || c == '[' || c == '{'){
stack.push(c);
}else {
if(stack.isEmpty()) return false;
char top = stack.pop();
if(c == ')' && top != '(' ||
c == ']' && top != '[' ||
c == '}' && top != '{' ){
return false;
}
}
}
return stack.isEmpty();
}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-19,如有侵权请联系 cloudcommunity@tencent 删除原理字符串returnstack算法时间复杂度: O() 其中n是字符串的长度 空间复杂度: O() 其中n是字符串的长度
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-21 00:44:05
下一篇:14.【滑动窗口】
推荐阅读
留言与评论(共有 6 条评论) |
本站网友 营运能力分析 | 28分钟前 发表 |
()){ if(c == '(' || c == '[' || c == '{'){ stack.push(c); } if(stack.isEmpty()){ return false; } if(c == ')'){ if(stack.peek() == '('){ stack.pop(); }else{ return false; } }else if(c == ']'){ if(stack.peek() == '['){ stack.pop(); }else{ return false; } }else if(c == '}'){ if(stack.peek() == '{'){ stack.pop(); }else{ return false; } } } return stack.isEmpty(); } }优化后:代码语言:javascript代码运行次数:0运行复制 class Solution { public boolean isValid(String s) { if(s.length() % 2 != 0) return false; Stack<Character> stack = new Stack<>(); for(char c | |
本站网友 不支持flash | 25分钟前 发表 |
就放进栈中 如果是左括号 | |
本站网友 灵超 | 19分钟前 发表 |
【栈】 题目传送门解法(栈):算法原理 定义一个栈 如果是右括号 | |
本站网友 猕猴桃的营养价值及功效 | 18分钟前 发表 |
()){ if(c == '(' || c == '[' || c == '{'){ stack.push(c); } if(stack.isEmpty()){ return false; } if(c == ')'){ if(stack.peek() == '('){ stack.pop(); }else{ return false; } }else if(c == ']'){ if(stack.peek() == '['){ stack.pop(); }else{ return false; } }else if(c == '}'){ if(stack.peek() == '{'){ stack.pop(); }else{ return false; } } } return stack.isEmpty(); } }优化后:代码语言:javascript代码运行次数:0运行复制 class Solution { public boolean isValid(String s) { if(s.length() % 2 != 0) return false; Stack<Character> stack = new Stack<>(); for(char c | |
本站网友 宫颈息肉图片 | 12分钟前 发表 |
如有侵权请联系 cloudcommunity@tencent 删除前往查看原理字符串returnstack算法 |