package Day2;
import java.util.Stack;
public class Stack_020 {
/**
*
* @param s
* @return
*/
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>() ;
//迭代直到字符串为空
for (int i=0;i<s.length();i++) {
//碰到左括号就进栈
if(s.charAt(i) == '(' || s.charAt(i) == '[' || s.charAt(i) == '{')
stack.push(s.charAt(i));
//碰到左括号就出栈
else if(s.charAt(i) == ')' || s.charAt(i) == ']' || s.charAt(i) == '}')
stack.pop();
else if(s.charAt(i) == ')' && !stack.empty() && stack.peek() == '(')
stack.pop();
else if(s.charAt(i) == ')' && !stack.empty() && stack.peek() == '[')
stack.pop();
else if (s.charAt(i) == ')' && !stack.empty() && stack.peek() == '{')
stack.pop();
else
return false;
}
return stack.empty();
}
public static void main(String[] args) {
System.out.println(new Stack_020().isValid("((()))"));
}
}
本文介绍了一种利用Java中的Stack数据结构来检查字符串中括号是否正确匹配的方法。通过迭代字符串并根据遇到的括号类型进行入栈或出栈操作,最终判断栈是否为空来确定括号是否匹配。代码示例展示了如何实现这一逻辑。


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



