题目描述:由于只包含字符的字符串'('
,')'
,'{'
,'}'
,'['
和']'
,确定输入的字符串是有效的。
支架必须关闭以正确的顺序,"()"
并"()[]{}"
都是有效的,但"(]"
并"([)]"
没有。
解决方案:使用栈
import java.util.Stack;
public static boolean isValid(String s) {Stack<Character> stack=new Stack<>();//使用了数据结构栈
for(char value:s.toCharArray())//将字符串转化为字符数组
{
if(value=='(')
stack.push(')');//进栈
else if(value=='{')
stack.push('}');//进栈
else if(value=='[')
stack.push(']');//进栈
else if(stack.isEmpty()||stack.pop()!=value)//栈为空
{
return false;
}
}
return stack.isEmpty();//如果满足题意 的话,最后要成为一个空栈
}