Question:
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
给定一个字符串仅仅包含这些字符'('
, ')'
, '{'
, '}'
, '['
and ']', 判定输入的字符串是否是可匹配的,括号必须以正确的顺序打开关闭,比如
"()"
and "()[]{}"
。
算法思想:① 这个题首先会想到用栈进行存储操作,遇到左边的字符‘[’,'{',‘(’则进栈,如果遇到相反字符在栈不为空的前提下出栈,并且判断读到的字符是否和出栈的字符匹配,匹配的话继续,否则直接结束。
② 有一点儿在遍历输入字符时,如果栈为空了,表明肯定不能匹配。
③ 如果输入的字符遍历完毕,但是栈不为空,表明‘[’,'{',‘(这些字符多,也肯定不匹配。
代码设计:
1 class Solution { 2 public boolean isValid(String s) { 3 // Note: The Solution object is instantiated only once and is reused by each test case. 4 if(s.length()%2==1) 5 return false;//如果是奇数,一定不匹配 6 Stackstack=new Stack (); 7 Character temp=null; 8 for(int i=0;i
2013-10-2402:16:14