一、题目

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

  An input string is valid if:

  Open brackets must be closed by the same type of brackets.

  Open brackets must be closed in the correct order.

  Note that an empty string is also considered valid.

  Example 1:

  Input: "()"

  Output: true

  Example 2:

  Input: "()[]{}"

  Output: true

  Example 3:

  Input: "(]"

  Output: false

  Example 4:

  Input: "([)]"

  Output: false

  Example 5:

  Input: "{[]}"

  Output: true

  二、解题思路

  1、利用List集合实现一个栈;

  2、将字符串s转换成字符数组,并循环遍历;

  3、如果字符为:"{、(、["中的一个,则存入集合中;

  4、如果字符为:"}、)、]"中的一个,则取出集合中最后一个元素进行比较;

  5、如能匹配上,则删除集合中最后一个元素,否则返回false;

  6、最后判断集合大小是否为0,如是则返回true。

  三、代码实现

  public boolean isValid(String s) {

  if ("".equals(s)) {

  return true;

  } else {

  Map parentheseMap = new HashMap();

  parentheseMap.put(')', '(');

  parentheseMap.put(']', '[');

  parentheseMap.put('}', '{');

  char[] sArr = s.toCharArray();

  List stackList = new ArrayList();

  for (int i = 0; i < sArr.length; i++) {

  if (sArr[i] == '(' || sArr[i] == '[' || sArr[i] == '{') {

  stackList.add(sArr[i]);

  } else {无锡人流多少钱 http://wapyyk.39.net/wx/zonghe/fc96e.html

  if (stackList.size() == 0) {

  return false;

  } else {

  char temp = stackList.get(stackList.size() - 1);

  if (temp == parentheseMap.get(sArr[i])) {

  stackList.remove(stackList.size() - 1);

  } else {

  return false;

  }

  }

  return stackList.size() == 0 ? true : false;

  }

  }

最新文章

  1. 将word文档A表格中的内容拷贝到word文档B表格中
  2. Bash 会清空从父进程继承来的 OLDPWD
  3. SQL 随记
  4. UvaLive6662 The Last Ant 模拟
  5. STL之stack栈
  6. php mysql_affected_rows获取sql执行影响的行数
  7. 【BZOJ1036】【树链剖分】树的统计Count
  8. HashSet的分析(转)
  9. HDU 4664 Triangulation【博弈论】
  10. Java基础之垃圾回收
  11. 剑指OFFER——调整数组顺序使奇数位于偶数前面
  12. php SeasLog使用以及liunx环境下安装
  13. Vue-router重修01
  14. input range样式优化
  15. 阅读:ECMAScript 6 入门(4)
  16. JavaScript--浅谈!=、!==、==和===的区别
  17. 配置Chrome Workspace功能
  18. WPS Office 2012 专业版 附正版序列号
  19. 如何配置 SpaceVim
  20. Python 源码剖析(一)【python对象】

热门文章

  1. 黑客攻防技术宝典web实战篇:攻击用户&#183;其他技巧习题
  2. Jmeter安装说明
  3. Hadoop端口访问
  4. bzoj 4860 [BeiJing2017]树的难题
  5. Bits Equalizer UVA - 12545
  6. linux下使用svn创建版本库和权限管理
  7. [已读]编写可维护的javascript
  8. nginx缓存配置及开启gzip压缩
  9. P3368 【模板】树状数组 2 单点查询与区间修改
  10. 【学习笔记】比特(bit)、字,字节(B)存储单位之间的关系+其与操作系统位数的关系+不同编译器编译方式下数据类型的表示范围