[leetcode] 20.Valid Parentheses
2015-08-29 20:15
447 查看
题目:
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.
题意:
给定一个字符串,里面包含了’(‘, ‘)’, ‘{‘, ‘}’, ‘[’ , ‘]’。查看这个字符串是否是合法的。像这就是合法的,[(])就是不合法的。
思路:
使用栈存放符号,遇到左括号就入栈,遇到右括号就查看是否与栈顶的左括号相匹配。
代码如下:
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.
题意:
给定一个字符串,里面包含了’(‘, ‘)’, ‘{‘, ‘}’, ‘[’ , ‘]’。查看这个字符串是否是合法的。像这就是合法的,[(])就是不合法的。
思路:
使用栈存放符号,遇到左括号就入栈,遇到右括号就查看是否与栈顶的左括号相匹配。
代码如下:
class Solution { public: bool isValid(string s) { if(s.empty())return true; stack<char> signs; for(auto c : s) { switch(c) { case '(':signs.push(c);break; case '[':signs.push(c);break; case '{':signs.push(c);break; case ')':{ if(signs.empty() || signs.top() != '(')return false; signs.pop(); break; } case ']':{ if(signs.empty() || signs.top() != '[')return false; signs.pop(); break; } case '}':{ if(signs.empty() || signs.top() != '{')return false; signs.pop(); break; } } } return signs.empty(); } };
相关文章推荐
- Qt QWaitCondition的应用
- 使用定时器去抖
- Http编程(二)使用Apache 的API实现
- python中get、post数据
- synchronized初步
- ZOJ3818--Pretty Poem(暴力)
- DllImport调用系统DLL的方法
- Android_布局优化
- poj 1091 跳蚤(最大公约数原理+容斥原理)
- IP地址转整数
- PHP中的常量
- uvalive4835(模拟)
- Android 获得控件的高度
- HDOJ1421 搬寝室(dp)
- 图上DP POJ3249
- iOS开发:代码通用性以及其规范 第二篇(猜想iOS中实现TableView内部设计思路(附代码),以类似的思想实现一个通用的进度条)
- 基于boost.asio的ECHO服务器
- 磁盘挂载与卸载
- 面试题26.复杂链表的复制
- jquery模拟下拉框单选框复选Select,Checkbox,Radio