题解 | #括号序列#

括号序列

http://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

  1. 用栈
  2. stk.peek()顶点
  3. Character
import java.util.*;


public class Solution {
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid (String s) {
        // write code here
            Stack<Character> stk = new Stack<Character>();
    for(int i=0;i<s.length();i++){
        switch(s.charAt(i)){
            case '(':
            case '[':
            case '{':
                stk.push(s.charAt(i));     //当前字符为'(','{','['时,元素入栈
                break;
            case ')':       
                if(stk.empty() || stk.peek() != '(')    //栈空或者括号栈顶字符与当前字符不匹配,则序列为不合法序列
                    return false;
                stk.pop();                   //匹配的栈顶元素出栈
                break;
            case ']':
                if(stk.empty() || stk.peek() != '[')
                    return false;
                stk.pop();
                break;
            case '}':
                if(stk.empty() || stk.peek() != '{')
                    return false;
                stk.pop();
                break;
        }
    }
    return stk.empty()?true:false;      //当括号以正确顺序关闭时则最后的栈为空
    }
}
全部评论

相关推荐

nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务