首页 > 其他 > 详细

Leecode no.20 合理的括号

时间:2020-12-10 13:25:23      阅读:17      评论:0      收藏:0      [点我收藏+]
package com.example.demo.leecode;

import java.util.Stack;

/**
* 合理的括号
* @Date 2020/12/10
* @author Tang
*
* 给定一个只包括 ‘(‘,‘)‘,‘{‘,‘}‘,‘[‘,‘]‘ 的字符串,判断字符串是否有效。
* 有效字符串需满足:
* 左括号必须用相同类型的右括号闭合。
* 左括号必须以正确的顺序闭合。
* 注意空字符串可被认为是有效字符串。
*/
public class ValidParentheses {

private Stack<Character> stack = new Stack();

public boolean execute(String s){

if(s == null || "".equals(s.trim())){
return false;
}

char[] chars = s.toCharArray();

for(char c : chars){
if(ifMatching(c)){
stack.pop();
continue;
}
stack.push(c);
}

return stack.size() == 0;
}

/**
* 是否匹配上栈中上一个字符
* @param c
* @return
*/
private boolean ifMatching(char c){
if(stack.size() == 0){
return false;
}

switch (stack.peek()){
case ‘{‘:
return c == ‘}‘;
case ‘(‘:
return c == ‘)‘;
case ‘[‘:
return c == ‘]‘;
default:
return false;
}


}


public static void main(String[] args) {

String value = "{(]}";
boolean result = new ValidParentheses().execute(value);
System.out.println(result);
}


}

Leecode no.20 合理的括号

原文:https://www.cnblogs.com/ttaall/p/14113347.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!