📜个人简介 |
⭐️个人主页:摸鱼の文酱博客主页🙋♂️
🍑博客领域:java编程基础,mysql
🍅写作风格:干货,干货,还是tmd的干货
🌸精选专栏:【Java】【mysql】 【算法刷题笔记】
🎯博主的码云gitee,平常博主写的程序代码都在里面。
🚀支持博主:点赞👍、收藏⭐、留言💬
🍭作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!
📃合法括号序列判断
🎯1.原题链接
🎯2.题目要求
给定一个字符串
A
和其长度n
,请返回一个bool
值代表它是否为一个合法的括号串(只能由括号组成)。
样例输入:"(()())",6
样例输出:true
🎯3.基础框架
java版本的基础框架代码如下:
import java.util.*;
public class Parenthesis {
public boolean chkParenthesis(String A, int n) {
// write code here
}
}
🎯4.解题思路
1.用栈结构实现,栈中存放左括号,当遇到右括号之后,检查栈中是否有左括号,如果有则出栈,如果没有,则说明不匹配
🎯5.完整代码
import java.util.*;
public class Parenthesis {
public boolean chkParenthesis(String A, int n) {
if(n%2!=0){
return false;
}
Stack<Character> stack=new Stack<>();
for (char c:A.toCharArray()){
if(c=='('){
stack.push(c);
}else if(c==')'){
if(stack.isEmpty()){
return false;
}else if(stack.peek()=='('){
stack.pop();
}
}else{
return false;
}
}
return stack.isEmpty();
}
}
🎯6.涉及算法&总结
本题考查对栈的应用