[每日算法 - 华为机试] leetcode20 :有效的括号 「栈」
入口
力扣
https://leetcode.cn/problems/valid-parentheses/submissions/
题目描述
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。示例 1:
输入:s = "()"
输出:true
示例 2:输入:s = "()[]{}"
输出:true
示例 3:输入:s = "(]"
输出:false
方法一:栈
解题思路

- 遍历字符串
- 将左括号入栈
- 如果是右字符串则进行判断
- stack是否为空 字符串全是右字符串的情况。
- 和最近的字符串匹配
- 匹配成功将左括号出栈
- 最后栈为空则代表符合规则
代码示例
class Solution {
public boolean isValid(String s) {
int n = s.length();
if(n%2==1){return false;}
Map<Character,Character> pairs = new HashMap<Character,Character>(){{
put(')','(');
put(']','[');
put('}','{');
}};
Deque<Character> stack = new LinkedList<Character>();
for(int i=0;i< n;i++){
char ch = s.charAt(i);
if(pairs.containsKey(ch)){
//前面没有左括号或者最近的左括号不匹配
if(stack.isEmpty() || stack.peek() != pairs.get(ch)){
return false;
}
if(!stack.isEmpty())stack.pop();
}else{
stack.push(ch);
}
}
return stack.isEmpty();
}
}
[每日算法 - 华为机试] leetcode20 :有效的括号 「栈」的更多相关文章
- 2014华为机试西安地区B组试题
2014华为机试西安地区B组试题 题目一.亮着点灯的盏数 一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1.2.3.-n-1.n.每盏电灯由一个拉线开关控制.開始,电灯所有关着. 有n ...
- 华为机试001:字符串最后一个单词的长度(华为OJ001)
华为机试 字符串最后一个单词的长度 计算字符串最后一个单词的长度,单词以空格隔开. 提交网址: http://www.nowcoder.com/practice/8c949ea5f36f422594b ...
- 2014华为机试西安地区A组试题
2014华为机试西安地区A组试题 题目一.分苹果 M个同样苹果放到N个同样篮子里有多少种放法,同意有篮子不放. 1<=M<=10.1<=N<=10 比如5个苹果三个篮子,3,1 ...
- 华为机试ACM(字符组合问题)
今晚做了华为的机试,3道ACM题,最后一道是实现从M个不同字符中任取N个字符的所有组合. eg: input:ABC 2 output:AB AC BC 第一个输入为字符串,第二个输入为组合的字符个数 ...
- 华为机试正式版(西安c/c++/java),今天下午去机试的题目,新奇出炉了!
下面题目都是回顾的.题目都非常easy, 大家有些基础就能够參加!(语言能够是c/c++.也能够是java的) 题目一(60分): 字符串操作. 将小写转换成大写, 将大写转化为小写, 数字的不做转换 ...
- 华为机试_字符串识别_Vector的使用;
第一题:拼音转数字输入是一个只包含拼音的字符串,请输出对应的数字序列.转换关系如下:描述: 拼音 yi er san si wu liu qi ba jiu ...
- 输入一个字符串,去掉重复的字符,并按ASCII值排序-华为机试
import java.util.Scanner; //输入字符串,去掉重复的字符,并按ASSIC码值排序 public class quChong { public static void main ...
- 2015华为机试——数字基root
题目描写叙述: 求整数的Root:给定正整数,求每位数字之和;假设和不是一位数,则反复; 输入:输入随意一个或多个整数 输出:输出各位数字之和,直到和为个位数为止(输入异常,则返回-1),多行,每行相 ...
- 华为机试 之 joseph环
一:首先科普一下约瑟夫问题的数学方法 (1) 不管是用list实现还是用vector实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比較烦,并且时间复杂度高达O(nm),当n,m很大(比如上百 ...
- 华为机试-iNOC产品部-杨辉三角的变形
题目描述 1 1 1 1 1 2 3 2 1 1 3 6 7 6 3 11 4 10 16 19 16 10 4 1以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数,左上角数 ...
随机推荐
- 【记录】使用R2 CDN替换本地项目图片以加速图片加载
将图片存储到 Cloudflare 的存储桶中,并通过其提供的公共 URL 来替换代码中的本地路径,可以减小项目中打包的图片文件体积 实现方法的详细步骤: 1. 上传图片到 Cloudflare 的存 ...
- 特殊数据类型的深度分析:JSON、数组和 HSTORE 的实用价值
title: 特殊数据类型的深度分析:JSON.数组和 HSTORE 的实用价值 date: 2025/1/4 updated: 2025/1/4 author: cmdragon excerpt: ...
- C# 调用FFmpeg 合并视频和音频
C#修改环境变量: string pathStr = System.Environment.GetEnvironmentVariable("Path", EnvironmentVa ...
- 再谈Redux
2025年再聊前端状态管理似乎是一件不必要的事,毕竟相关文章已堆积得如山如海.但在这些文章或视频内容中,我并没有找到自己喜欢的方案,准确的说是使用方式.所以这篇文章不做技术分析,主要聊聊个人对状态管理 ...
- 深入理解第二范式(2NF):提升数据库设计的有效性与灵活性
title: 深入理解第二范式(2NF):提升数据库设计的有效性与灵活性 date: 2025/1/16 updated: 2025/1/16 author: cmdragon excerpt: 数据 ...
- Slort pg walkthrough Intermediate window
nmap ┌──(root㉿kali)-[~] └─# nmap -p- -A -sS 192.168.226.53 Starting Nmap 7.94SVN ( https://nmap.org ...
- SQL Server 2022新功能:将数据库备份到S3兼容的对象存储
SQL Server 2022新功能:将数据库备份到S3兼容的对象存储 本文介绍将S3兼容的对象存储用作数据库备份目标所需的概念.要求和组件. 数据库备份和恢复功能在概念上类似于使用SQL Serve ...
- 记录一次修复 JetBrains Rider 控制台输出乱码
在使用 JetBrains Rider 调试程序时,控制台输出日志出现了乱码. 歪打正着结果困扰许久的问题得到了解决,于是记录下了这个小短文. 具体的修复建议如下:将终端编码设置为 GB2312 具体 ...
- 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
在AI技术飞速发展的今天,大语言模型(LLM)的应用越来越广泛,但高昂的使用成本常常让个人开发者和小型团队望而却步.今天,我要为大家介绍一个非常实用的开源项目--DeepSeek-Free-API,它 ...
- Java 加密和解密
在 Java 中,加密和解密通常通过 Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE) 实现.以下是常见 ...