<span style="font-size:18px;">/*************************************************************************
> File Name: Valid_Parentheses.cpp
> Author:
> Mail:
> Created Time: 2014年08月24日 星期日 14时54分19秒
************************************************************************/
/*************************************************************************
Description:
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.
**************************************************************************/
#include<iostream>
#include<stdio.h>
#include<stack>
#include<string.h>
using namespace std;
stack<char>Stack;
bool Solution(const char *str)
{
if(str == NULL)
{
return false;
}
int len = strlen(str);
while(*str != '\0')
{
if((*str == '{')|| (*str == '[') || (*str == '('))
{
Stack.push(*str);
str++;
}
if(*str == '}')
{
if(!Stack.empty())
{
if(Stack.top() == '{')
{
Stack.pop();
}
else
return false;
}
else
{
return false;
}
str++;
}
if(*str == ']')
{
if(!Stack.empty())
{
if(Stack.top() == '[')
{
Stack.pop();
}
else
return false;
}
else
{
return false;
}
str++;
}
if(*str == ')')
{
if(!Stack.empty())
{
if(Stack.top() == '(')
{
Stack.pop();
}
else
return false;
}
else
{
return false;
}
str++;
}
}
if(!Stack.empty())
{
return false;
}
else
{
return true;
}
}
int main()
{
const char *str = "}";
if(Solution(str))
printf("OK");
else
printf("NO");
}</span>
Valid_Parentheses.cpp
最新推荐文章于 2020-01-23 16:54:58 发布