`
bcyy
  • 浏览: 1826400 次
文章分类
社区版块
存档分类
最新评论

Valid Parentheses -- LeetCode

 
阅读更多
原题链接:http://oj.leetcode.com/problems/valid-parentheses/

这道题思路比较简单,主要考察对栈数据结构的操作。遇到左括号就入栈,遇到右括号看栈顶左括号是否与当前右括号匹配,匹配继续,否则返回false。算法的时间复杂度是O(n),空间复杂度也是O(n)。代码如下:

public boolean isValid(String s) {
    if(s==null || s.length()==0)
        return true;
    LinkedList<Character> stack = new LinkedList<Character>();
    for(int i=0;i<s.length();i++)
    {
        switch(s.charAt(i))
        {
            case '(':
            case '{':
            case '[':
                stack.push(s.charAt(i));
                break;
            case ')':
                if(stack.isEmpty() || stack.pop()!='(')
                    return false;
                break;
            case '}':
                if(stack.isEmpty() || stack.pop()!='{')
                    return false;
                break;
            case ']':
                if(stack.isEmpty() || stack.pop()!='[')
                    return false;
                break; 
            default:
                break;
        }
    }
    if(stack.isEmpty())
        return true;
    return false;
}
实现中的小陷阱是注意结束的时候要判一下栈是否为空,不为空仍是不合法的。

分享到:
评论

相关推荐

    颜色分类leetcode-leetcode-[removed]我对Leetcode问题的解决方案

    颜色分类leetcode My Leetcode Problems Solutions Using javascript(ES6) 1 Two Sum 两数之和 5 Longest Palindromic Substring 最长回文子串 7 Reverse Integer 整数反转 9 Palindrome Number 回文数 11 Container...

    leetcode答案-LeetCode-Trip:LeetCode刷题代码,大佬勿入

    LeetCode-Trip LeetCode刷题代码,大佬勿入。 为一年后的研究生找工作准备 目标是BAT的算法岗哈哈哈哈哈 争取做到每日一更 嗯…… 19.10.22:鸽了这么久,我又回来了……主要在实验室天天没啥事,过于佛系,刷刷题吧...

    javalruleetcode-leetcode-java:力码笔记

    leetcode-java leetcode刷题笔记 已做题目列表 1.Two Sum 3.Longest Substring Without Repeating Characters 5.Longest Palindromic Substring 20.Valid Parentheses 26.Remove Duplicates from Sorted Array 53....

    gasstationleetcode-leetcode-rust:莱特代码休息

    加油站 leetcode 力码锈 问题 # 标题 命令 1 cargo run --bin 1-two-sum 2 cargo ...20-valid-parentheses 21 cargo run --bin 21-merge-two-sorted-lists 27 cargo run --bin 27-remove-element 28

    javalruleetcode-LeetCode::lollipop:个人LeetCode习题解答仓库-多语言

    java lru leetcode :ice_cream: LeetCode ...Parentheses 26 Remove Duplicates from Sorted Array 48 Rotate Image 53 Maximum Subarray 55 Jump Game 56 Merge Intervals 64 Minimum Path Sum 73

    典型相关分析matlab实现代码-leetcode-algorithm:leetcode刷起来!

    ValidParentheses HashMap 还有 Stack 栈 最佳实践,Deque = Stack public static boolean isValid(String s) { if(s.length() == 0 || s == null || s.length() %2 != 0) return false; Deque deque = new ...

    Leetcode扑克-leetcode:Leetcode算法实践

    Parentheses 有效的括号 Stack / 栈 用栈实现配对 Daily Challenge 2020/08/14 28 Implement strStr() 实现 strStr() String / 字符串 循环遍历即可 algorithm-pattern: quick start 43 Multiply S

    leetcode-go:我使用Golang解决LeetCode问题的方法

    leetcode-goMy solution to LeetCode problems using GolangProblems 题库Array 数组NoTitle题名DifficultyStatus11Container With Most Water盛最多水的容器MediumSolved26Remove Duplicates from Sorted Array删除...

    leetcode中国-leetcode:leetcode刷题

    Parentheses 用栈判断括号匹配 Regular Expression Matching 递归匹配 wildcard matching 动态规划 longest common prefix , 简单 valid number, hard, 用有限自动机 integer to roman ,easy , 模拟 roman to ...

    leetcode2-valid_parentheses:代码挑战:有效括号

    leetcode 2 有效括号 给定一个只包含字符'(' , ')' , '{' , '}' , '['和']'的字符串,确定输入字符串是否有效。 输入字符串在以下情况下有效: * 左括号必须由相同类型的括号封闭。 * 左括号必须以正确的顺序关闭。 ...

    leetcode跳跃-leetcode:leetcode解题之路

    有效的括号](./Stack/valid-parentheses.md) Array 数组 [0004 寻找两个有序数组的中位数](./Array/README.md) [0045 跳跃游戏 II](./Array/jump-game-ii.md) [0053 最大子序和](./Array/maximum-subarray.md) [0041...

    leetcode题库-LeetCode:力码

    leetcode题库 LeetCode 题解合集 本仓库展示了LeetCode题库中部分题目的解法(持续更新),所有代码均采用C++编写并配有输入输出样例 代码清单如下: 序号 题目 程序源码 ...Parentheses.cpp 22 括号生成 G

    lrucacheleetcode-leetcode:leetcode

    Valid Parentheses 21. Merge Two Sorted Lists 22. Generate Parentheses 25. Reverse Nodes in k-Group 26. Remove Duplicates from Sorted Array 27. Remove Element 28. Implement strStr() 3

    LeetCode最全代码

    # [LeetCode](https://leetcode.com/problemset/algorithms/) ![Language](https://img.shields.io/badge/language-Python%20%2F%20C++%2011-orange.svg) [![License]...

    lrucacheleetcode-leetcode-swift:在这里你可以找到我为leetcode挑战提交的Swift提交

    lru缓存leetcode LeetCode Swift 解决方案 我的目标是提供对我的解决方案的访问,并使它们中的大...Valid Parentheses 快 100.00%。 所有挑战的版权均归其各自作者所有。 我仅提供我的解决方案以及上下文的问题和示例。

    Leetcode-Algorithm-Exercise

    1_TwoSum 9_PalindromeNumber 13_RomanToInteger 14_LongestCommonPrefix 20_ValidParentheses 21_MergeTwoSortedLists 26_RemoveDuplicatesFromSortedArray 27_RemoveElement 28_ImplementStrStr() 35_Search...

    leetcode跳跃-LeetCode:力扣刷题70道!

    leetcode 跳跃 LeetCode 力扣刷题70道! 数组 Array 力扣 485 最大连续1的个数 | Max Consecutive ...Parentheses 力扣 496 下一个更大的元素 | Next Greater Element I 力扣 232 用栈实现队列 | Implement

    leetcode双人赛-LeetCode:力扣笔记

    leetcode双人赛LeetCode 编号 题目 难度 题型 备注 Two Sum 简单 Add Two Numbers 中等 链结串列 重要 Longest Substring Without Repeating Characters 中等 字串 重要 Median of Two Sorted Arrays 困难 数学 ...

    leetcode卡-abstract-data-type:使用golang实现数据结构

    leetcode卡 abstract-data-type 使用golang实现数据结构 ...├─valid_parentheses 有效的括号 (https://leetcode-cn.com/explore/learn/card/queue-stack/218/stack-last-in-first-out-data-structu

    leetcode添加元素使和等于-leetcode:力码

    valid-parentheses 155 min-stack design-circular-deque trapping-rain-water 滑动窗口 通过窗口的大小不断调整来找到合适的值,或者窗口大小不变,通过左右移动来找到相应的结果 \ \ 其他 非 LeetCode 题,单纯在...

Global site tag (gtag.js) - Google Analytics