博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode - 20. Valid Parentheses
阅读量:5870 次
发布时间:2019-06-19

本文共 1464 字,大约阅读时间需要 4 分钟。

20. Valid Parentheses 

 ----------------------------------------------------------------------------

Mean: 

给定一个括号序列,检查括号是否按顺序匹配.

analyse:

栈结构的基本运用.

Time complexity: O(N)

 

view code

/**
* -----------------------------------------------------------------
* Copyright (c) 2016 crazyacking.All rights reserved.
* -----------------------------------------------------------------
*       Author: crazyacking
*       Date  : 2016-02-17-16.33
*/
#include <queue>
#include <cstdio>
#include <set>
#include <string>
#include <stack>
#include <cmath>
#include <climits>
#include <map>
#include <cstdlib>
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
using
namespace
std;
typedef
long
long(
LL);
typedef
unsigned
long
long(
ULL);
const
double
eps(
1e-8);
class
Solution
{
public
:
   
bool
isValid(
string s)
   
{
       
stack
<
char
>
sta;
       
for(
auto
p:s)
       
{
           
if(p
==
'(' || p
==
'{' || p
==
'[')
               
sta
.
push(p);
           
else
if(p
==
')')
           
{
               
if(
sta
.
empty())
return
false;
               
char
tp
=
sta
.
top();
               
sta
.
pop();
               
if(
tp
!=
'(')
                   
return
false;
           
}
           
else
if(p
==
'}')
           
{
               
if(
sta
.
empty())
return
false;
               
char
tp
=
sta
.
top();
               
sta
.
pop();
               
if(
tp
!=
'{')
                   
return
false;
           
}
           
else
           
{
               
if(
sta
.
empty())
return
false;
               
char
tp
=
sta
.
top();
               
sta
.
pop();
               
if(
tp
!=
'[')
                   
return
false;
           
}
       
}
       
if(
sta
.
empty())
           
return
true;
       
else
return
false;
   
}
};
int
main()
{
   
Solution
solution;
   
string s;
   
while(
cin
>>s)
   
{
       
if(
solution
.
isValid(s))
           
cout
<<
"Yes."
<<
endl;
       
else
cout
<<
"No."
<<
endl;
   
}
   
return
0;
}
/*
*/

转载地址:http://okanx.baihongyu.com/

你可能感兴趣的文章
Java学习——对象和类
查看>>
ElasticSearch 组合过滤器
查看>>
HttpClient连接池的连接保持、超时和失效机制
查看>>
数据中心操作人员:艰难地在针对VM构建的基础设施上运行容器
查看>>
基于Go语言来理解Tensorflow
查看>>
QCon讲师对对碰——洪小军采访梁宇鹏:就是爱Golang
查看>>
[elixir! #0016] 在 phoenix 项目里配置 elm
查看>>
使用swiftenv管理swift版本
查看>>
Node.js 模块系统
查看>>
Android单元测试 - Sqlite、SharedPreference、Assets、文件操作 怎么测?
查看>>
D3.js 力导向图来处理拓扑图
查看>>
JavaScript-浅谈DOM事件流
查看>>
写给自己,梳理一下我现在对前端知识结构的理解
查看>>
实践 HTML5 的 CSS3 Media Queries
查看>>
使用 Swift 在 iOS 10 中集成 Siri —— SiriKit 教程(Part 1)
查看>>
[译] 逐渐去掌握 React(作为一名 Angular 开发者)
查看>>
不懂函数式?用mobx来写react应用吧
查看>>
[LeetCode/LintCode] Word Ladder
查看>>
年老代过大有什么影响
查看>>
Android单元测试(五):依赖注入,将mock方便的用起来
查看>>