LeetCode Valid Parentheses
2015-08-18 12:02
274 查看
原题链接在这里:https://leetcode.com/problems/valid-parentheses/
当遇到'(', '[', '{' 时压栈,当遇到')', ']', '}'时观察stk是否为空,若是空,返回false,若不是,pop()出来的第一个元素是否对应,若不对应, 返回false. 读完整个string若stk不空,返回false。若没问题,返回true。
Time Complexity: O(s.length()). Space: O(s.length()).
AC Java:
当遇到'(', '[', '{' 时压栈,当遇到')', ']', '}'时观察stk是否为空,若是空,返回false,若不是,pop()出来的第一个元素是否对应,若不对应, 返回false. 读完整个string若stk不空,返回false。若没问题,返回true。
Time Complexity: O(s.length()). Space: O(s.length()).
AC Java:
public class Solution { public boolean isValid(String s) { if(s == null || s.length() == 0){ return true; } Stack<Character> stk = new Stack<Character>(); for(int i = 0; i<s.length(); i++){ if(s.charAt(i) == '(' || s.charAt(i) == '[' || s.charAt(i) == '{'){ stk.push(s.charAt(i)); } if((s.charAt(i) == ')' || s.charAt(i) == ']' || s.charAt(i) == '}') && stk.isEmpty()){ return false; } if(s.charAt(i) == ')'){ char c = stk.pop(); if(c != '('){ return false; } } if(s.charAt(i) == ']'){ char c = stk.pop(); if(c != '['){ return false; } } if(s.charAt(i) == '}'){ char c = stk.pop(); if(c != '{'){ return false; } } } if(!stk.isEmpty()){ return false; } return true; } }
相关文章推荐
- HTML5新api即pushState和replaceState实现无刷新修改url
- mongoDB分组
- 使用Acegi的标签库<authz:authorize>
- java.lang.IllegalAccessError: class com.google.protobuf.HBaseZeroCopyByteString
- ITIL该研究的结论(互联网思维的结合)
- java.lang.IllegalAccessError: class com.google.protobuf.HBaseZeroCopyByteString
- B/S简介
- Node.js的优缺点
- windows系统 Node.js(安装-启动-测试)
- IOS多线程(NSThread,NSOperation,GCD)
- 刷新显示周围wifi信号名称及属性
- jarsigner 为Apk签名
- 【诗词摘录】暂时的一篇文章,后作调整
- Home页提示“If you are behind a proxy, set the proxy_url parameter correctly”
- 打印画面
- 网站运维如何监控云主机服务
- 浅谈数据结构-字符串匹配
- 图 相关题目 Ⅲ
- 黑马程序员——黑苹果的日记(4)——基础知识(2)
- sqlite alter table添加多列