博客
关于我
leetcode做题记录0020
阅读量:349 次
发布时间:2019-03-04

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

为了解决这个问题,我们需要判断给定的括号字符串是否正确匹配。我们可以使用栈来解决这个问题,因为栈非常适合处理嵌套结构。

思路

  • 初始化栈:使用一个栈来记录括号的位置。
  • 遍历字符串:逐个字符处理字符串中的每个字符。
    • 遇到左括号'(',将其推入栈。
    • 遇到右括号')',检查栈顶是否是左括号'(':
      • 如果栈为空,说明没有对应的左括号,返回false。
      • 如果栈顶不是左括号,说明括号不匹配,返回false。
  • 处理循环结束:遍历结束后,栈中如果还有元素,说明有多余的左括号,返回false。
  • 返回结果:如果所有括号都正确匹配且栈为空,返回true。
  • 代码

    import java.util.LinkedList;public class Solution {    public boolean isValid(String s) {        if (s.length() == 0) {            return true;        }        LinkedList
    stack = new LinkedList<>(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == '(') { stack.add(c); } else if (c == ')') { if (stack.isEmpty() || stack.pop() != '(') { return false; } } } return stack.isEmpty(); }}

    解释

    • 初始化栈:使用LinkedList来模拟栈,因为它可以动态增长和缩短,非常适合这个问题。
    • 遍历字符串:逐个字符处理字符串,处理左括号和右括号,右括号则检查栈顶是否为左括号。
    • 处理循环结束:检查栈是否为空,栈不为空则说明有多余的左括号。
    • 返回结果:根据栈的状态返回是否正确匹配。

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

    你可能感兴趣的文章
    POJ 2362 Square DFS
    查看>>
    Qt笔记——解决添加Qt Designer Form Class时“allocation of incomplete type Ui::”
    查看>>
    poj 2386 Lake Counting(BFS解法)
    查看>>
    poj 2387 最短路模板题
    查看>>
    POJ 2391 多源多汇拆点最大流 +flody+二分答案
    查看>>
    POJ 2403
    查看>>
    poj 2406 还是KMP的简单应用
    查看>>
    POJ 2431 Expedition 优先队列
    查看>>
    Qt笔记——获取位置信息的相关函数
    查看>>
    POJ 2484 A Funny Game(神题!)
    查看>>
    POJ 2486 树形dp
    查看>>
    POJ 2488:A Knight&#39;s Journey
    查看>>
    SpringBoot为什么易学难精?
    查看>>
    poj 2545 Hamming Problem
    查看>>
    poj 2723
    查看>>
    poj 2763 Housewife Wind
    查看>>
    Qt笔记——模型/视图MVD 文件目录浏览器软件
    查看>>
    POJ 2892 Tunnel Warfare(树状数组+二分)
    查看>>
    poj 2965 The Pilots Brothers' refrigerator-1
    查看>>
    poj 3026( Borg Maze BFS + Prim)
    查看>>