LeetCode解题-#20-Valid Parentheses
来源:互联网 发布:淘宝买家账号钻石级别 编辑:程序博客网 时间:2024/06/09 14:07
题目描述:
给一个只包含”(“, “),”, “[“, “]”, “{“, “}” 的字符串,判断这个字符串是否有效(配对)。
比如:
“()[]{}” 是有效的。
“([)]” 是无效的。
思路:
让 3 种括号能有效的原则要依次配对,左开口的 3 种扩号是 :”(“, “[“, “{“, 右开口的 3 种扩号是 “)”, “]”, “}”, 要让左右都配对,那就必须保证右开口扩号的前一个扩号一定要与它上一个扩号配对。
可以用栈来处理这种问题,遇到左扩号就入栈,遇到右扩号就出栈,进而判断出栈的扩号与遇到的扩号是否配对,直到栈中没有扩号,如果到最后栈中还有扩号则配对失败。
代码实现:
public class Solution { public bool IsValid(string s) { Stack<char> p = new Stack<char>(); for(int i = 0; i < s.Length; ++i) { if(s[i] == '(' || s[i] == '[' || s[i] == '{' ) { p.Push(s[i]); } else { if(s[i] == ')') { if(p.Count ==0 || p.Peek() != '(') { return false; } } else if(s[i] == ']') { if(p.Count ==0 || p.Peek() != '[') { return false; } } else if(s[i] == '}') { if(p.Count ==0 || p.Peek() != '{') { return false; } } p.Pop(); } } if(p.Count > 0) { return false; } return true; }}
阅读全文
0 0
- LeetCode解题-#20-Valid Parentheses
- LeetCode解题报告--Valid Parentheses
- [LeetCode] Valid Parentheses 解题报告
- [leetcode javascript解题]Valid Parentheses
- [LeetCode] Valid Parentheses 解题报告
- 【LeetCode】Valid Parentheses 解题报告
- Leetcode Valid Parentheses 解题报告
- Leetcode #20 Valid Parentheses 括号验证 解题小节
- leetcode解题之20 # Valid Parentheses Java版
- LeetCode 20: Valid Parentheses
- LeetCode(20) Valid Parentheses
- leetcode 20 Valid Parentheses
- Leetcode【20】:Valid Parentheses
- leetcode 20-Valid Parentheses
- [leetcode 20] Valid Parentheses
- [Leetcode] 20 - Valid Parentheses
- LeetCode | #20 Valid Parentheses
- leetcode.20-----------Valid Parentheses
- 《白话深度学习与Tensorflow》学习笔记(7)RBM限制玻尔兹曼机
- 逻辑电路,零和一的实验
- Java 视频网盘分享
- PAT-1010. Radix (25)
- <深入linux内核架构>--第五章 锁与进程间通信
- LeetCode解题-#20-Valid Parentheses
- K Inverse Pairs Array
- 阿里云linux服务器如何挂载数据盘?
- 视图绘制三部曲之onMeasure()源码最简解析 带你轻松领略源代码之美
- Visual Studio交叉编译器提供对ARM的支持
- 大叔公开课~微服务与持久集成
- 这应该是目前最快速有效的ASP.NET Core学习方式(视频)
- LeetCode377. Combination Sum IV
- springMVC复习笔记