C/C++ 有效的括号判断

题目: 给定一个只包括 '(',')','{','}','[',']'的字符串s,判断字符串是否有效。
约束: 有效字符串需满足:
    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    每个右括号都有一个对应的相同类型的左括号。

示例 1:
    输入:s = "()"
    输出:true

示例 2:
    输入:s = "()[]{}"
    输出:true

示例 3:
    输入:s = "(]"
    输出:false
        
示例 4:
    输入:s = "{[]}"
    输出:true

解析: 遇到左括号则入栈,遇到对应得右括号则出栈。

演示源码:

// Len_IsValid.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
#include <string>
#include <vector>
using namespace std;bool isValid(string s) 
{vector<char> q;char last = ' ';for (int i = 0; i < s.size(); i++){last = (q.size() > 0) ? (q[q.size() - 1]) : (' ');if (s[i] == ')' || s[i] == '}' || s[i] == ']'){if (s[i] == ')' && last == '(') q.pop_back();else if (s[i] == '}' && last == '{') q.pop_back();else if (s[i] == ']' && last == '[') q.pop_back();else return false;}else{q.push_back(s[i]);}}if (q.size() > 0) return false;return true;
}void PrintStr(string s, bool bResult)
{// sprintf("\ns = \"%s\"", s.c_str());// resultprintf("\nbResult = %s\n", (bResult != 0) ? ("true") : ("false"));
}int main()
{string s = "()";bool bResult = isValid(s);PrintStr(s, bResult);s = "()[]{}";bResult = isValid(s);PrintStr(s, bResult);s = "(}";bResult = isValid(s);PrintStr(s, bResult);s = "{[]}";bResult = isValid(s);PrintStr(s, bResult);
}

执行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/223373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【六】python观察者设计模式

6.1行为型模式简介 观察者设计模式是最简单的行为型模式之一,所以我们先简单了解一下行为型模式 创建型模式的工作原理是基于对象的创建机制的。由于这些模式隔离了对象的创建细 节&#xff0c;所以使得代码能够与要创建的对象的类型相互独立。结构型模式用于设计对象和类的结…

Python GUI教程:轻松构建用户界面

大家好&#xff0c;从网络开发到数据科学&#xff0c;Python被广泛应用于各个领域。本文将探索Python内置的用于创建图形用户界面&#xff08;GUI&#xff09;的库&#xff1a;Tkinter。无论是初学者还是经验丰富的开发者&#xff0c;了解如何创建Python GUI都可以增强构建交互…

Makefile基本指令

语法规则 目标 ... : 依赖 ...命令1命令2. . .1、目标即要生成的文件。如果目标文件的更新时间晚于依赖文件更新时间&#xff0c;则说明依赖文件没有改动&#xff0c;目标文件不需要重新编译。否则会进行重新编译并更新目标文件。 2、默认情况下Makefile的第一个目标为终极目…

系统接口未找到报404异常统一返回处理

上篇博客&#xff1a;异常处理返回结构体&#xff0c;做到全局统一&#xff0c;仍然会出现一些情况。 针对未找到接口爆出404异常&#xff0c;返回结构体如果没有处理的话会变成下面这样&#xff0c;不会走全局异常处理&#xff0c;这样的话就没有完全做到全局异常统一处理。 …

es模板和索引简单操作简介

一、模板 1、创建模板 &#xff08;1&#xff09;请求url http://127.0.0.1:9201/_template/template_test &#xff08;2&#xff09;请求方式 PUT &#xff08;3&#xff09;请求体 { "index_patterns": ["test*"], "settings": { …

并发相关参数指标

指标 1、TPS和QPS 一、TPS&#xff1a;Transactions Per Second&#xff08;每秒传输的事物处理个数&#xff09;&#xff0c;即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出&#xff0c;加上一次用户数据库访问。&#xff08;业务TPS CAPS 每个呼叫平均TPS&…

前端发送请求之参数处理---multipart/form-data与application/x-www-form-urlencoded

Content-Type就是指 HTTP 发送信息至服务器时的内容编码类型&#xff0c;服务器根据编码类型使用特定的解析方式&#xff0c;获取数据流中的数据。 其实前后端发送请求的方式有 text/plain、application/json、application/x-www-form-urlencoded、 multipart/form-data等&…

Axie Infinity 之后,Ronin 的潜力何在?

作者&#xff1a;stellafootprint.network 数据来源&#xff1a;Ronin Dashboard 备受欢迎的 Web3 游戏 Pixels 在 2023 年 10 月下旬从 Polygon 迁移到了专为游戏设计的区块链 Ronin。Pixels 此前作为 Polygon 上活跃用户&#xff08;钱包数量&#xff09;最多的 Web3 游戏&…

iPhone手机中备忘录如何改变字体颜色

作为一名iPhone用户&#xff0c;我经常使用手机备忘录来记录生活中的点点滴滴。这样&#xff0c;我的大脑就能从繁琐的记忆任务中解脱出来&#xff0c;专注于更重要的事情。 而且&#xff0c;我有一个特别的习惯&#xff0c;那就是使用不同颜色的字体来区分不同的备忘录。这样…

学习黑马vue

项目分析 项目下载地址&#xff1a;vue-admin-template-master: 学习黑马vue 项目下载后没有环境可参考我的篇文章&#xff0c;算是比较详细&#xff1a;vue安装与配置-CSDN博客 安装这两个插件可格式化代码&#xff0c;vscode这个软件是免费的&#xff0c;官网&#xff1a;…

什么是 Spring 框架?

Spring 框架是一个开源的、轻量级的企业级应用框架&#xff0c;用于构建 Java 应用程序。它提供了全面的基础设施支持&#xff0c;以简化企业级应用的开发。Spring 的核心目标是通过促进良好的设计原则和编程习惯来提高 Java 开发人员的效率和系统的可维护性。 Spring 框架的主…

2023-12-14 二叉树的最大深度和二叉树的最小深度以及完全二叉树的节点个数

二叉树的最大深度和二叉树的最小深度以及完全二叉树的节点个数 104. 二叉树的最大深度 思想&#xff1a;可以使用迭代法或者递归&#xff01;使用递归更好&#xff0c;帮助理解递归思路&#xff01;明确递归三部曲–①确定参数以及返回参数 ②递归结束条件 ③单层逻辑是怎么样…

更改Android Studio的.android和.gradle文件夹默认位置

一、首先关闭Android Studio&#xff0c; 二、目标位置新建文件夹 这一步&#xff0c;为了省去麻烦&#xff0c;我并没有直接在我的目标位置新建文件夹&#xff0c;而是把C盘下的.android和.gradle文件夹整个复制过来&#xff0c;和SDK都在同一目录下&#xff0c;感觉这样可以…

MySQL:从MySQL看主从架构高可用性实现

目录 1 主备延迟 1.1 主备延迟 1.2 主备延迟的来源 1.2.1 主备机性能有差距 1.2.2 备库压力大 1.2.3 大事务 1.3 主备延迟的排查思路 3&#xff09;查看MySQL状态 2 主备切换策略 2.1 可靠性优先策略 2.2 可用性优先策略 2.3 常见切换技术 从进入互联网时代开始&a…

快速诊断试剂原料的快速诊断——博迈伦生物

快速诊断试剂在医学领域中发挥着至关重要的作用&#xff0c;其原料的选择直接关系到试剂的性能和准确性。在设计和制备快速诊断试剂时&#xff0c;必须仔细考虑原料的选择&#xff0c;以确保其在诊断过程中表现出色。以下是一些常见的快速诊断试剂原料及其特性的概述。 1. 抗体…

class083 动态规划中用观察优化枚举的技巧-下【算法】

class083 动态规划中用观察优化枚举的技巧-下【算法】 算法讲解083【必备】动态规划中用观察优化枚举的技巧-下 code1 1235. 规划兼职工作 // 规划兼职工作 // 你打算利用空闲时间来做兼职工作赚些零花钱&#xff0c;这里有n份兼职工作 // 每份工作预计从startTime[i]开始、e…

Python 字典:dic = {} 和 dic = defaultdict(list)之间的区别

d defaultdict(list) 和 d {} 在Python中代表了两种不同类型的字典初始化方式&#xff0c;它们之间有几个关键的区别&#xff1a; 1、类型 d defaultdict(list)&#xff1a;这里使用的是 collections 模块中的 defaultdict 类。它是一个字典的子类&#xff0c;提供了一个默…

基于K-Means的图片聚类算法实战

一. 场景说明 我们通常遇到一个问题&#xff0c;当很多图片放在一个文件夹中&#xff0c;要把这些文件夹中的图片按规律分为几类。当图片比较少时&#xff0c;我们可以手动完成&#xff0c;但是当图片的数量是几千甚至几万时&#xff0c;手动挑选图片的工作量就太大了。 因此&…

git关于ssh我遇到的问题解决链接

新手&#xff0c;第一次用gitee上传程序&#xff0c;花了好几天&#xff08;有空就弄&#xff09;才搞定&#xff0c;刚开始弄https&#xff0c;但我的用户名和密码都不知道&#xff0c;网上找的办法都重置不了。下面是我弄ssh时遇到的问题 在gitee设置ssh公钥&#xff1a; G…

GaussDB如何创建和管理视图

GaussDB如何创建和管理视图 一、什么是视图 当用户对数据库中的一张或者多张表的某些字段的组合感兴趣&#xff0c;而又不想每次键入这些查询时&#xff0c;用户就可以定义一个视图&#xff0c;以便解决这个问题。 视图与基本表不同&#xff0c;不是物理上实际存在的&#x…