Leetcode——Valid Parenthese

#20

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.

这一题明显是使用栈来处理这种括号匹配问题。主要的思路可以理出来,给一个字符串,有以下几种情况:
1. 对于左括号,直接放入栈中
2. 对于右括号,如果栈为空,返回false;如果栈不为空,如果栈顶为匹配的左括号,则成功,将左括号出栈,如果不是匹配的左括号,返回false。

这样就可以很容易的写出代码段:

class Solution {
public:bool isValid(string s) {stack<char> stack_p;for(int i = 0;i < s.size();i++){if(s[i] == '(' || s[i] == '{' || s[i] == '[')stack_p.push(s[i]);else{if(stack_p.empty()) return false;if(s[i] == ')' && stack_p.top() != '(') return false;if(s[i] == '}' && stack_p.top() != '{')return false;if(s[i] == ']' && stack_p.top() != '[')return false; stack_p.pop();}   }return stack_p.empty();}
};

java的代码思路基本是一样的。

  • Java
class Solution {public boolean isValid(String s) {if(s.length() <= 1)return false;Stack<Character> st = new Stack<Character>();for(int i = 0;i < s.length();i++){if(s.charAt(i) == '('||s.charAt(i) == '{'||s.charAt(i) == '['){st.push(s.charAt(i));else{if(st.size()==0)return false;char top = st.pop();if(s.charAt(i)==')')if(top!='(')return false;else if(s.charAt(i)=='}')if(top!='{')return false;else if(s.charAt(i)==']')if(top!='[')return false;}}return st.isEmpty();
}
  • Python
class Solution:def isValid(self, s):""":type s: str:rtype: bool"""parenthese = []map_parenthese = {')':'(','}':'{',']':'['}for c in s:if c in map_parenthese:if map_parenthese[c] != parenthese.pop()return false

速度上,python肯定是要慢的。

LeetCode——Valid Parenthese相关推荐

  1. 32 Longest Valid Parenthese

    32 Longest Valid Parenthese 题意 解法 代码 算法复杂度 注意 题目链接:32 Longest Valid Parenthese 题意 给出一个由字符'('或')'组成的字 ...

  2. LeetCode 20. Valid Parenthese

    题目: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the ...

  3. Leetcode 20.Valid Parenthese

    我的思路 很简单, 遇到 ().[].{} 这三对符号的左边的就入栈, 遇到右边的就直接将栈顶元素与其对应进行比较, 能组成一对符号就出栈, 否则就返回 false. 因为有 6 种情况就使用 swi ...

  4. LeetCode Valid Sudoku

    原题链接在这里:https://leetcode.com/problems/valid-sudoku/ 题目: Determine if a Sudoku is valid, according to ...

  5. leetcode Valid Palindrome

    题目连接 https://leetcode.com/problems/valid-palindrome/ Valid Palindrome Description Given a string, de ...

  6. leetcode—Valid Parentheses

    1.问题描述 Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if t ...

  7. LeetCode : Valid Parentheses

    问题: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the ...

  8. LeetCode - Valid Sudoku

    题目: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...

  9. LeetCode --- Valid Parentheses

    题目链接 Problem discription Given a string containing just the characters '(', ')', '{', '}', '[' and ' ...

最新文章

  1. 【iOS】iOS之Button segue弹出popOver消除(dismiss)问题
  2. myeclipse10安装了activiti插件后创建BPMN 文件时报错,
  3. python元类的简单了解
  4. spring的aop的动态代理机制都有哪些_Spring学习(4):Spring AOP
  5. Android 获取外网IP,实测有效
  6. javascript 继承、子类化
  7. 【2019/5/24】周进度报告
  8. asp小偷转html,ASP中实现小偷程序的原理和简单示例
  9. python爬取酷狗音乐付费音乐包_一篇文章教会你使用Python网络爬虫下载酷狗音乐...
  10. 基于FPGA的AD/DA实验
  11. 为什么标签天线振子长度小于半个波长?
  12. 重磅 | 智能工厂整体实施方案(附PPT下载)
  13. 虚拟化技术——VLAN策略
  14. URLRewrite地址重定向的实现
  15. 2021-11-02发电机转子方程的推导
  16. 【剑指offter】【C++】【二叉树】27. 二叉树的镜像
  17. 游戏脚本引色粉,无脑圈钱攻略
  18. 兴趣图谱聚集用户 社区化电子商务正爆发
  19. web-pwa 未来10年核心前端技术
  20. 三亚自由行八天七晚旅行攻略

热门文章

  1. 华南理工大计算机博士毕业条件,华南理工大学博士研究生申请学位发表论文的规定...
  2. 笔记本内存条加装教程!
  3. 2022年最新山西水利水电施工安全员模拟试题题库及答案
  4. 如何在照片中查找地理位置等信息
  5. Java操作Redis存储HashMap对象类型数据
  6. unity2018.3新的预制件流程学习笔记
  7. linux 下强大的 JSON 解析命令 jq
  8. 实现财务自由的四大准则与五项禁令
  9. 将python代码转化为c语言代码,提高运行效率
  10. 情人节礼物:毒一无二的维多利亚内衣