题目:20、给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串
思路
先判断是否为空,若空则正确,Stack表示一个栈。Stack表示一个栈,且栈里的每个元素都是T类型的。以此类推。 new表示调用该泛型类型的构造函数,创建一个实例。
创建一个类型为字符的栈,循环遍历字符串,是(栈用push的方法push
代码
class Solution {
public boolean isValid(String s
) {
if(s
.isEmpty())
return true;
Stack
<Character> stack
=new Stack<Character>();
for(char c
:s
.toCharArray() ){
if(c
=='(')
stack
.push(')');
else if (c
=='[')
stack
.push(']');
else if(c
=='{')
stack
.push('}');
else if(stack
.empty()||c
!=stack
.pop())
return false;
}
if (stack
.empty())
return true;
else return false;
}
}