给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例 1:

输入: "()"
输出: true

示例 2:

输入: "()[]{}"
输出: true

示例 3:

输入: "(]"
输出: false

示例 4:

输入: "([)]"
输出: false

示例 5:

输入: "{[]}"
输出: true
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
var stack = {
"(":")",
"[":"]",
"{":"}"
};
var map = [];
for(var i = 0; i < s.length; i++){
if(s[i] == '(' || s[i] == '[' || s[i] == '{'){
map.push(s[i])
}else if(stack[map.pop()]!= s[i]){
//如果输入的字符串不是上边的启示字符串,就查看是不是上边最后一个字符串的闭合字符串
//比如上边最后一个字符串是'[',利用栈取出最后一个字符串,.pop()作为对象的键找到他是不是
//和下一个字符串对应,不闭合则表示对应不上了
return false;
}
}
if(map.length > 0){
//有值则添加进去没有闭合的
return false;
}else{
return true;
}
};

  

最新文章

  1. Using GET_APPLICATION_PROPERTY in Oracle D2k Forms
  2. iOS 蓝牙开发(四)BabyBluetooth蓝牙库介绍(转)
  3. Yii里获取当前controller和action的id
  4. jQuery coveringBad 效果对比
  5. Json数据时间格式的处理
  6. 第二章实例:动态生成View控件例子---小球跟随手指滑动
  7. PHP中实现异步调用多线程程序代码
  8. c/c++ 基金会(七) 功能覆盖,虚函数,纯虚函数控制
  9. iOS 数组字典操作
  10. 模式识别(1)——PCA算法
  11. jQuery里面的DOM操作(查找,创建,添加,删除节点)
  12. 容器中的诊断与分析2——live diagnosis——perf
  13. MyBatis 的 XML 配置文件使用说明
  14. SQL 必知必会&#183;笔记&lt;5&gt;创建计算字段
  15. 基于vue的UI框架集锦
  16. bzoj 1060
  17. ReentrantLock源码(一)
  18. Groovy常用编程知识点简明教程
  19. python装饰器中@wraps作用--修复被装饰后的函数名等属性的改变
  20. 创建Maven项目后,发现目录里面只有src/main/resources

热门文章

  1. ansible批量管理工具的搭建与简单的操作
  2. day33-python阶段性复习七
  3. 大雄的elk实践
  4. python全栈开发笔记----基本数据类型---列表方法
  5. Forth 输入流处理
  6. Learn how to use git
  7. 内存泄漏 tensorflow
  8. 文本分类TextCNN
  9. instanceof &amp; isAssignableFrom的异同
  10. 理解微信小程序的生命周期和运行原理