您的位置:首页 > 编程语言 > Java开发

Leetcode-20. Valid Parentheses

2016-10-01 19:56 323 查看
前言:为了后续的实习面试,开始疯狂刷题,非常欢迎志同道合的朋友一起交流。因为时间比较紧张,目前的规划是先过一遍,写出能想到的最优算法,第二遍再考虑最优或者较优的方法。如有错误欢迎指正。博主首发CSDN,mcf171专栏。

博客链接:mcf171的博客

——————————————————————————————
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.

这个题没啥好说的,用一个堆实现即可。Your runtime beats 8.71% of java submissions.

public class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<Character>();
Map<Character,Character> bracket2bracket = new HashMap<Character,Character>();
bracket2bracket.put(')','(');
bracket2bracket.put(']','[');
bracket2bracket.put('}','{');
for(int i = 0 ; i < s.length(); i++){
Character mapBracket = bracket2bracket.get(s.charAt(i));
if(mapBracket != null){
if(stack.empty()) return false;
char topChar = stack.pop();
if(topChar != mapBracket) return false;
}else{
stack.push(s.charAt(i));
}
}
if(stack.empty())	return true;
else return false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 算法