20. Valid Parentheses (Stack)
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.
struct Stack{
struct StackNode* top;
int size;
};
struct StackNode{
char value;
struct StackNode* next;
};
bool isEmpty(struct Stack* s){
if(s->size==) return true;
else return false;
}
void push(struct Stack* s, char value){
struct StackNode* node = malloc(sizeof(struct StackNode));
node->value = value;
node->next = s->top;
s->top = node;
s->size++;
}
char pop(struct Stack* s){
struct StackNode* node = s->top;
char value = node->value;
s->top = node->next;
free(node);
s->size--;
return value;
}
bool isValid(char* s) {
struct Stack* charStack = malloc(sizeof(struct Stack));
charStack->top = NULL;
charStack->size = ;
while(*s!='\0'){
if(*s == ')'){
if(isEmpty(charStack) || pop(charStack)!='(') return false;
}
else if(*s == ']'){
if(isEmpty(charStack) || pop(charStack)!='[') return false;
}
else if(*s == '}'){
if(isEmpty(charStack) || pop(charStack)!='{') return false;
}
else{
push(charStack,*s);
}
s++;
}
if(isEmpty(charStack)) {
free(charStack);
return true;
}
else{
free(charStack);
return false;
}
}
20. Valid Parentheses (Stack)的更多相关文章
- Leetcode 20 Valid Parentheses stack的应用
判断括号是否合法 1.用stack存入左括号“([{”,遇到相应的右括号“)]}”就退栈 2.判断stack是否为空,可以判断是否合法 class Solution { public: bool is ...
- [Leetcode][Python]20: Valid Parentheses
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 20: Valid Parentheseshttps://oj.leetcod ...
- 20. Valid Parentheses【leetcode】
20. Valid Parentheses Given a string containing just the characters '(', ')', '{', '}', '[' and ']', ...
- leetcode 20. Valid Parentheses 、32. Longest Valid Parentheses 、
20. Valid Parentheses 错误解法: "[])"就会报错,没考虑到出现')'.']'.'}'时,stack为空的情况,这种情况也无法匹配 class Soluti ...
- 《LeetBook》leetcode题解(20):Valid Parentheses[E]——栈解决括号匹配问题
我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...
- LeetCode解题笔记 - 20. Valid Parentheses
这星期听别人说在做LeetCode,让他分享一题来看看.试了感觉挺有意思,可以培养自己的思路,还能方便的查看优秀的解决方案.准备自己也开始. 解决方案通常有多种多样,我觉得把自己的解决思路记录下来,阶 ...
- leetCode练题——20. Valid Parentheses
1.题目 20. Valid Parentheses——Easy Given a string containing just the characters '(', ')', '{', '}', ...
- 刷题20. Valid Parentheses
一.题目说明 这个题目是20. Valid Parentheses,简单来说就是括号匹配.在学数据结构的时候,用栈可以解决.题目难度是Medium. 二.我的解答 栈涉及的内容不多,push.pop. ...
- C# 写 LeetCode easy #20 Valid Parentheses
20.Valid Parentheses Given a string containing just the characters '(', ')', '{', '}', '[' and ']', ...
随机推荐
- ES6 模块导入import 导出export 和module.export
ES6中新增了模块的导入和导出功能 在实际过程中可以使用 import 和 export 对模块进行导入和导出操作,具体如下 1. 名字导入/导出 (导入名字必须与导出的一致,导入时需要用花括号) ...
- Windows环境安装Django步骤
前提:已经安装Python 1.先从Django官网下载压缩包:https://www.djangoproject.com/download/ 2.解压Django,如我解压到 D:\Python\D ...
- delphi 调用Webservice 引入wsdl 报错 document empty
delphi 调用Webservice 引入wsdl 报错 document empty 直接引入wsdl 地址报错 document empty 解决办法:在浏览器里保存为xml文件,然后在开发环境 ...
- C# 调用win32 DLL报错 System.BadImageFormatException
C# 调用win32 DLL报错 System.BadImageFormatException 项目右键属性->项目设计器->生成->平台->把'默认设置(任何 CPU)'改 ...
- JeeWx捷微3.1小程序版本发布,支持微信公众号,微信企业号,支付窗——JAVA版开源微信管家
支持小程序,JeeWx捷微3.1小程序版本发布^_^ JeeWx捷微V3.1——多触点小程序版本管理平台(支持微信公众号,微信企业号,支付窗) JeeWx捷微V3.1.0版本紧跟微信小程序更新,在 ...
- mysql每天凌晨0点准时启动taskeng.exe如何关闭
MySQL弹出一个taskeng.exe. 内容如下:=====================Start Initialization====================mysql Instal ...
- js人形时钟
https://blog.csdn.net/rsylqc/article/details/44808063 分享自:http://chabudai.org/blog/?p=59 在这个网站看到一个很有 ...
- 关于vector变量的size,是一个无符号数引发的bug。LeetCode 3 sum
class Solution { public: vector<vector<int>> threeSum(vector<int>& a) { vector ...
- spring MVC初始化过程学习笔记1
如果有错误请指正~ 1.springmvc容器和spring的关系? 1.1 spring是个容器,主要是管理bean,不需要servlet容器就可以启动,而springMVC实现了servlet规范 ...
- Webservice之axis
根据wsdl的url,使用axis1.4生成客户端,并且对webservice进行调用 1.到www.apache.org上去下载axis-bin-1_4.zip,如要关联源代码就把axis-sr ...