博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode--020--括号匹配(java版)
阅读量:5892 次
发布时间:2019-06-19

本文共 2296 字,大约阅读时间需要 7 分钟。

给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例 1:

输入: "()"输出: true

示例 2:

输入: "()[]{}"输出: true

示例 3:

输入: "(]"输出: false

示例 4:

输入: "([)]"输出: false

示例 5:

输入: "{[]}"输出: true

low low的传统解法。。。

1 class Solution { 2     public boolean isValid(String s) { 3         Stack
stack = new Stack(); 4 for (int i = 0;i < s.length();i++){ 5 switch(s.charAt(i)){ 6 case '(': 7 stack.push('('); 8 break; 9 case '[':10 stack.push('[');11 break;12 case '{':13 stack.push('{');14 break;15 case ')':16 if(stack.empty()){17 return false;18 }else if(stack.pop() != '('){19 return false;20 }21 break;22 case ']':23 if(stack.empty()){24 return false;25 }else if(stack.pop() != '['){26 return false;27 }28 break;29 case '}':30 if(stack.empty()){31 return false;32 }else if(stack.pop() != '{'){33 return false;34 }35 break; 36 }37 }38 if(!stack.empty()){39 return false;40 }41 return true;42 }43 }

sth update

 

1 class Solution { 2     public boolean isValid(String s) { 3         Stack
stack = new Stack(); 4 for(Character ch : s.toCharArray()){ 5 if(ch=='{'){ 6 stack.push('}'); 7 }else if(ch == '('){ 8 stack.push(')'); 9 }else if(ch == '['){10 stack.push(']');11 }else{12 if(stack.isEmpty() || stack.pop() != ch){13 return false;14 }15 }16 }17 return stack.isEmpty();18 }19 }

2019-03-03 11:14:44

转载于:https://www.cnblogs.com/NPC-assange/p/10464385.html

你可能感兴趣的文章