题目描述
对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。
给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。
测试样例:
“(()())”,6
返回:true
测试样例:
“()a()()”,7
返回:false
测试样例:
“()(()()”,7
返回:false
代码
import java.util.*;
public class Parenthesis {
public boolean chkParenthesis(String A, int n) {
// write code here
char [] c = A.toCharArray();
Map<Character, Character> map = new HashMap<>();
map.put('(', ')');
Stack<Character> stack = new Stack<>();
for(int i = 0; i < n; i++)
{
if(map.containsKey(c[i]))
stack.push(c[i]);
else if(!stack.isEmpty() && map.get(stack.peek()) == c[i])
stack.pop();
else
return false;
}
if(!stack.isEmpty())
return false;
else
return true;
}
}

本文介绍了一种用于判断字符串是否为合法括号序列的算法。通过使用栈和映射表,该算法能够有效地处理包含多种括号类型的复杂字符串。文章提供了一个具体的Java实现示例,并通过几个测试用例验证了算法的有效性和正确性。
213

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



