Level:

​  Easy

题目描述:

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

An input string is valid if:

  1. Open brackets must be closed by the same type of brackets.
  2. Open brackets must be closed in the correct order.

Note that an empty string is also considered valid.

思路分析:

​  简单的括号匹配问题,用map保存三种括号的对应关系,同时设置一个栈,遍历字符串,如果遇到的是左括号,那么入栈,如果遇到的是右括号,判断栈顶的符号是不是其对应的左括号,如果是则栈顶弹出,如果不是则括号不匹配,遍历完字符串后判断栈是否为空,如果为空则括号匹配,如果不为空,则不匹配。

代码:

class Solution {
public boolean isValid(String s) {
HashMap<Character,Character>map=new HashMap<>();
map.put('(',')');
map.put('[',']');
map.put('{','}');
Stack<Character>stack=new Stack<>();
for(int i=0;i<s.length();i++){
if(stack.isEmpty()){
if(s.charAt(i)==')'||s.charAt(i)==']'||s.charAt(i)=='}')
return false;
else
stack.push(s.charAt(i));
}else{
if(s.charAt(i)==map.get(stack.peek()))
stack.pop();
else if(s.charAt(i)=='('||s.charAt(i)=='['||s.charAt(i)=='{')
stack.push(s.charAt(i));
else
return false; }
}
if(stack.isEmpty())
return true;
else
return false;
}
}

最新文章

  1. PHP中类的继承和构造函数的继承
  2. webview使用总结及注意事项
  3. Data Structures/Algorithms 小甲鱼99讲笔记系列(1~~15讲)
  4. C#线程并发执行的实例[转]
  5. Web Api如何传递POST请求
  6. Python 字典和列表的对比应用
  7. poj1260 pearls
  8. (笔记)安装npm需要更改代理kneesocks 1081 1080
  9. C语言结构体赋值2
  10. 安卓开发错误:The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved.
  11. 浏览器HTTP缓存原理分析(转)
  12. Django数据库迁移
  13. [译]Selenium Python文档:三、导航控制
  14. Spark Scheduler模块源码分析之DAGScheduler
  15. Django基本视图
  16. ES6 中的 iterator
  17. kettle实现多表同步
  18. Django 拾遗
  19. 添加AD RMS role时,提示密码不能被验证The password could not be validated
  20. Django-配置、静态文件与路由

热门文章

  1. vue-cli脚手架build目录中的karma.conf.js配置文件
  2. 第五章 JVM调优(待续)
  3. leetcode637
  4. AFNetworking-2.5-源码阅读剖析--网络请求篇
  5. OSI七层网络模型与TCP/IP四层网络模型
  6. scp命令 跨服务器传输
  7. TabHost两种不同的实现方式
  8. GSON 报错HibernateProxy. Forgot to register a type adapter? 的解决办法
  9. python2 and python3 difference - division
  10. C#多线程的简单例子