LeetCode刷题:20. Valid Parentheses

博客围绕LeetCode的有效括号问题展开,给定包含'(', ')', '{', '}', '[', ']'字符的字符串,需判断其是否有效。有效条件为开括号由同类型闭括号闭合且按正确顺序。给出多个示例及算法运行结果,如'()[]{}'返回true,'([)]'返回false。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LeetCode刷题:20. Valid Parentheses

原题链接:https://leetcode.com/problems/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 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


算法设计

package com.bean.algorithm.basic;

import java.util.Stack;

public class ValidParentheses {

	public boolean isValid(String s) {
		if (s == "" || s.isEmpty())
			return true;
		Stack stack = new Stack();

		for (int index = 0; index < s.length(); index++) {
			char ch = s.charAt(index);

			if (ch == '(' || ch == '[' || ch == '{') {
				stack.push(ch);
			} else {
				char expected;
				if (ch == ')')
					expected = '(';
				else if (ch == ']')
					expected = '[';
				else
					expected = '{';

				if (stack.isEmpty()) {
					return false;
				}

				char actual = (char) stack.pop();
				if (actual != expected) {
					return false;
				}
			}
		}

		return stack.isEmpty();
	}
	
	public static void main(String[] args) {
		
		ValidParentheses vp=new ValidParentheses();
		
		//String input="()[]{}";
		String input="([)]";
		
		boolean flag=vp.isValid(input);
		System.out.println("flag is: "+flag);
	}

}

程序运行结果:

当 input = “()[]{}”时,返回 flag = true;

当 input = “([)]”时,返回 flag = false

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值