当前位置: 首页 > news >正文

LeeCode 20.有效的括号

问题:

 

 源程序加上了自己的注释

bool isValid(string s)   // Leecode 20 
{
	if (s.size() % 2 == 1)
		return false;
	unordered_map<char, char> pairs = {  //哈希表的键为右括号,值为相同类型的左括号
		{')','('},
		{']','['},
		{'}','{'}
	};
	stack<char> sta;
	for (char c : s)  // 遍历字符串
	{
		if (pairs.count(c))   // 统计关键字为 c 的数据个数,如果有则返回1
		{
			if (sta.empty() || sta.top() != pairs[c])  //判断栈中是否还有未匹配符号,及栈顶符号是否与当前键对应的值相等。pairs[key]=value
				return false;
			sta.pop();
		}
		else
			sta.push(c);
	}
	return sta.empty();  //匹配完成后,再次检查栈中元素是否已清空
}

unordered_map::count(key)  

原型:size_type count ( const key_type& k ) const;  查找键值为key的值,如果有就返回1,否则返回0

我认为比较巧妙的地方在于用右括号作为键,左括号为值。

相关文章:

  • LeeCode 26 删除排序数组中的重复项,返回数组新长度
  • LeeCode 27 移除元素,返回数组新长度
  • LeeCode 2125 合并两个(K个)有序链表
  • (10)STL算法之搜索(二) 二分查找
  • 单例模式(懒汉模式、饿汉模式)
  • 工厂模式抽象工厂
  • 链表翻转
  • LRU缓存算法
  • 判断单链表中是否存在环
  • LeeCode61 旋转链表
  • LeeCode74 搜索二维矩阵
  • (0)Nginx 功能特性
  • (2)nginx 安装、启停
  • (3)nginx 配置(nginx.conf)
  • 汇编语言学习笔记--基础知识篇
  • [NodeJS] 关于Buffer
  • 08.Android之View事件问题
  • create-react-app做的留言板
  • css的样式优先级
  • docker python 配置
  • Facebook AccountKit 接入的坑点
  • JS基础之数据类型、对象、原型、原型链、继承
  • mysql外键的使用
  • python 学习笔记 - Queue Pipes,进程间通讯
  • V4L2视频输入框架概述
  • Web设计流程优化:网页效果图设计新思路
  • 彻底搞懂浏览器Event-loop
  • 老板让我十分钟上手nx-admin
  • 批量截取pdf文件
  • 前端性能优化——回流与重绘
  • 深度学习中的信息论知识详解
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 线性表及其算法(java实现)
  • mysql面试题分组并合并列
  • #162 (Div. 2)
  • #LLM入门|Prompt#3.3_存储_Memory
  • ${factoryList }后面有空格不影响
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (12)目标检测_SSD基于pytorch搭建代码
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (九)One-Wire总线-DS18B20
  • (力扣)1314.矩阵区域和
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)fock函数详解
  • 、写入Shellcode到注册表上线
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core中的去虚
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .Net组件程序设计之线程、并发管理(一)
  • /var/spool/postfix/maildrop 下有大量文件
  • @Pointcut 使用
  • @开发者,一文搞懂什么是 C# 计时器!