LeetCode:20. Valid Parentheses(Easy)

1. 原题链接

https://leetcode.com/problems/valid-parentheses/description/

2. 题目要求

给定一个字符串s,s只包含‘(‘‘)‘‘{‘‘}‘‘[‘ 和 ‘]‘。

合法:形如“()[]“、”{[()]}“

不合法:形如“([)]”、“[[((”

判断所给字符串s是否合法。

3. 解题思路

对字符串s转换成字符数字进行遍历。

利用遇到左半边字符:‘(‘、‘[‘、‘{‘时,将其对应的右半边字符进行入栈。遇到不是左半边字符时进行出栈操作,并对出栈的字符和当前遍历到的字符进行比较。二者相同,则继续遍历,不同则返回false;

最后对栈进行判空操作,为空则字符串s合法,返回true;否则s不合法,返回false。

4. 代码实现

import java.util.Stack;

public class ValidParentheses20 {
    public static void main(String[] args) {
        System.out.println(ValidParentheses20.isValid("[(])"));
    }

    public static boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();

        for (char c : s.toCharArray()) {
            if (c == ‘(‘)
                stack.push(‘)‘);
            else if (c == ‘[‘)
                stack.push(‘]‘);
            else if (c == ‘{‘)
                stack.push(‘}‘);
            else if (stack.isEmpty() || stack.pop() != c)
                return false;
        }

        return stack.isEmpty();
    }
}

  

原文地址:https://www.cnblogs.com/huiAlex/p/8110943.html

时间: 2024-11-10 13:54:42

LeetCode:20. Valid Parentheses(Easy)的相关文章

LeetCode 之 Longest Valid Parentheses(栈)

[问题描写叙述] Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid parentheses substring is "()", which has length = 2. Another exa

20. Valid Parentheses(stack)

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]"

LeetCode:27. Remove Element(Easy)

1. 原题链接 https://leetcode.com/problems/remove-element/description/ 2. 题目要求 给定一个整数数组 nums[ ] 和一个整数 val,删除数组中与val相同的元素,并返回删除后的数组长度 注意:不能定义新的数组,只能使用O(1)空间大小 3. 解题思路 遍历一次,将每个元素与给定的value进行比较,不同则给nums[count++]赋予当前元素的值:相同则直接跳过,最后返回count,即为删除后数组的长度. 4. 代码实现 p

20. Valid Parentheses(js)

20. Valid Parentheses 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

LeetCode 32 Longest Valid Parentheses(最长有效括号)(*)

翻译 给定一个仅仅包含"("或")"的字符串,找到其中最长有效括号子集的长度. 对于"(()",它的最长有效括号子集是"()",长度为2. 另一个例子")()())",它的最长有效括号子集是"()()",其长度是4. 原文 Given a string containing just the characters '(' and ')', find the length of the l

LeetCode:39. Combination Sum(Medium)

1. 原题链接 https://leetcode.com/problems/combination-sum/description/ 2. 题目要求 给定一个整型数组candidates[ ]和目标值target,找出数组中累加之后等于target的所有元素组合 注意:(1)数组中的每一个元素可以重复用:(2)数组中不存在重复元素:(3)数组中都是正整数 3. 解题思路 采用迭代的方法检验所有元素组合 4. 代码实现 1 import java.util.ArrayList; 2 import

[Leetcode][Python]20: Valid Parentheses

# -*- coding: utf8 -*-'''__author__ = '[email protected]' 20: Valid Parentheseshttps://oj.leetcode.com/problems/valid-parentheses/ Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.T

LeetCode:9. Palindromic Number(Medium)

原题链接:https://leetcode.com/problems/palindrome-number/description/ 1. 题目要求:判断一个int类型整数是否是回文,空间复杂度O(1) 2. 注意:负数不是回文!!因为前面有负号!注意整数溢出问题. 3. 思路:依然采用取余取整的方法 1 package com.huiAlex; 2 3 public class PalindromeNumber3 { 4 public static void main(String[] args

Valid Parentheses (python)

这道题主要用栈来实现的.什么是栈呢,参照书上的后缀表达式的例子谈谈自己的理解,栈最明显的特征是先进后出.所以可以有效的结合题目中 ()对匹配问题,可以把从列表中获取的符号先存到栈中. 首先建个空列表用于映射栈中元素.然后挨个查询传递过来的列表的每个元素,不在栈中就压进栈,在的话再看看是不是栈顶元素.是的话就把栈顶元素弹出.查询完所有元素,如果栈为空返回true. 刷的第二道题,感觉很费劲啊. 原文地址:https://www.cnblogs.com/shaer/p/9611013.html