import java.util.Arrays;
class Solution {
public boolean isValid(String s) {
char[] chs=s.toCharArray();
char[] stack=new char[s.length()];
char r=' ';
String couple="";
int top=-1;
for(char c:chs){
if(c=='('||c=='{'||c=='['){
top++;
stack[top]=c;
}else if(c==')'||c=='}'||c==']'){
if(top<0){
return false;
}
r= stack[top];
top--;
couple=String.valueOf(r)+String.valueOf(c);
if(!compareS(couple)){
return false;
}
}
}
if(top<0){
return true;
}else{
return false;
}
}
public boolean compareS(String s){
char l=s.charAt(0);
char r=s.charAt(1);
if( (l=='('&& r==')')||
(l=='['&& r==']')||
(l=='{'&& r=='}')
){return true;
}else{
return false;
}
}
}
其实是栈的实现,临近的两个括号必然是配对的。20. 有效的括号
最新推荐文章于 2024-01-05 15:00:38 发布
本文介绍了一个使用栈数据结构实现的括号匹配算法。该算法能够判断字符串中的括号是否正确配对,包括圆括号、方括号和花括号。通过遍历字符串并利用栈来跟踪左括号,当遇到右括号时检查是否能与栈顶的左括号匹配。

816

被折叠的 条评论
为什么被折叠?



