首页 > 代码库 > Valid Parentheses
Valid Parentheses
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.
C
#include<stdio.h> #include<stdlib.h> #include<malloc.h> struct node { char data; struct node* down; }; typedef struct node node; struct stack { node* top; int size; }; typedef struct stack Stack; Stack* EmptyStack() { Stack *top = (Stack*)malloc(sizeof(Stack*)); if(top) { top->top = NULL; top->size = 0; } return top; } int IsEmpty(Stack* stack) { if(!stack->top && stack->size == 0) return 1; return 0; } node* push(Stack* stack,char element) { node* newtop = (node*)malloc(sizeof(node*)); newtop->data = http://www.mamicode.com/element;>
C++
class Solution { public: bool isValid(string s) { stack<char> charstack; string::iterator it = s.begin(); while(it != s.end()) { if(*it=='{' || *it=='[' || *it=='(') charstack.push(*it); else if (*it=='}'){ if(!charstack.empty() && charstack.top()=='{') charstack.pop(); else return false; } else if (*it==']'){ if(!charstack.empty() && charstack.top()=='[') charstack.pop(); else return false; } else if (*it==')'){ if(!charstack.empty() && charstack.top()=='(') charstack.pop(); else return false; } else return false; it++; } if(charstack.empty()) return true; else return false; } };Valid Parentheses
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。