题目描述
对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。
给定一个字符串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;
}
}