hdu 5831 Rikka with Parenthesis II 2016 Multi-University 8

2023-11-03

Problemacm.hdu.edu.cn/showproblem.php?pid=5831

题意:给个括号序列,问能不能通过一次把两个不同位置的符号交换的操作,使得序列里的所有括号左右配对合法

分析:左括号进栈,如果是右括号而且栈顶是左括号,就两个一起弹出

题目要求一定有且只有一次操作,如果最后发现栈空(全部配对正确),而原来的序列长度又不足4(那就只能长为2),交换一次就变成不合法

之前一直卡一种情况:” ) ) ( (  “…因为留在栈内的括号不只一对,但交换一次就能同时使两对都合法配对

#include <stdio.h>
#define N 100000
char stack[N];
int main()
{
	int iTom;
	scanf("%d", &iTom);
	while( iTom-- )
	{
		int i,n,top,left,right;
		scanf("%d%*c", &n);
		for(i = top = 0; i<n; i++)
		{
			stack[top++] = getchar();
			// 合法配对一起弹出
			if( stack[top-1] == ')' && top > 1 && stack[top-2] == '(' )
			  top -= 2;
		}
		// 数栈内左、右括号各几何
		// 留在栈里的都是未合法配对的
		for(i = left = right = 0; i<top; i++)
		  if( stack[i] == '(' )
		  	left++;
		  else
		  	right++;
		if( left == right && left < 3 ) // 左、右括号数相同
		  if( !left ) // 栈空,全配完对
			if( n > 2 ) // 原始序列不只一对括号
			  puts("Yes");
			else
			  puts("No");
		  else // 栈非空
			puts("Yes");
		else // 左、右括号数不等,或相等但多于一对,只交还一次不行
		  puts("No");
	}
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hdu 5831 Rikka with Parenthesis II 2016 Multi-University 8 的相关文章

随机推荐

  • 漏洞修复中常用命令

    1 rpm Uvh rpm rpm qa grep 文件名查看版本 2 yum update 更新所有可以更新版本的软件包 rpm qa XXX 查看XXX版本信息 3 yum update y yum install y yum loca
  • python,使用字典(哈希表)记录数组中每个数字以及对应出现的次数

    list1 1 2 2 3 2 4 3 5 5 6 dic1 for i v in enumerate list1 if v not in dic1 如果数字不在哈希表中 字典的key 则次数为1 dic1 v 1 else 把之前的次数
  • linux欧拉强制修改root密码,openEuler 20.03 LTS安装图文教程

    本文以图文的方式介绍安装openEuler 20 03 LTS的方法 以光盘安装为例 其他安装方式除在启动安装时的引导方式不同外 待启动安装后则安装流程相同 在安装开始前 需要保证服务器启动选项为光驱优先 openEuler 20 03 L
  • mapbox的popup里使用vue组件

    问题 在mapbox官网中 他的popup实例是这样的 var popup new mapboxgl Popup offset popupOffsets className my class setLngLat e lngLat setHT
  • 第八章 ⾼并发下的微服务架构存在的问题和解决⽅案

    1 并发下的微服务存在的问题 并发下存在的问题 微服务拆分多个系统 服务之间互相依赖 可能会由于 系统负载过 突发流量或者 络等各种异常情况 导致 服务不可 核 思想 向失败编程 不要外界影响 不被请求拖垮 2 并发下的微服务容错 案 限流
  • 光猫怎么设置wifi 光猫怎么设置wifi密码

    怎么设置电信光纤猫的无线网络 电信光纤猫安装好后 请将网线口接入光纤猫的一个网口 如网口1 网线另一端接入电脑网口 查看网络链接状态 确保成功接入网络 使用默认地址进入光纤猫设置页面 一般默认地址为192 168 1 1 用户名以及密码可在
  • fastboot一键进入9008_【高通9008】究竟是怎么一回事?

    转自 河北阮咸科技有限公司 这里说的高通 是指采用高通品牌CPU的安卓手机 高通就是近两年和华为争5G标准的那个美国公司 国内众多的品牌 如 小米 oppo vivo 华为 对 华为也有一部分机器采用了高通的CPU 只要是高通的CPU就会有
  • jsp导入所需要的JavaBean方法

    在jsp中可以使用指令导入所需要的包 或者使用
  • OSTU算法

    OSTU算法目的就是计算出一连通区域的阈值 然后对该区域二值化 Ostu算法是一种用于二值化最佳阈值的选取方法 基本原理是根据阈值T将图像中的像素点分为C1和C2两类 不断的调整阈值T之后若此时两类之间存在最大的类间方差 那么此阈值即是最佳
  • Flutter开发报错uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library

    文章目录 问题描述 问题原因 解决方法 gradle文件介绍 项目级别的build gradle 模块级别的build gradle 问题描述 今天导入一个新项目时报错 报错内容如下 uses sdk minSdkVersion 16 ca
  • 吴恩达机器学习(六)线性回归的梯度下降

    线性回归的梯度下降 线性回归模型 线性假设函数 平方差代价函数 梯度下降算法可以优化J 0 1 最小平方差代价函数 实现好的梯度下降算法的关键 在于在导数项 线性回归的代价函数 形状总是凸函数 convex 只有一个全局最优解 在梯度下降的
  • 完整的性能测试流程

    前言 本篇文章带大家一起学习性能测试 1 使用jmeter工具进行接口的性能压测 2 熟练使用jmeter工具 3 针对项目接口进行压测 性能测试的流程和操作的过程介绍 4 分析调优 拓展部分 一 关于性能测试的理论介绍 为什么要进行性能测
  • MyEclipse的properties配置文件中文显示为unicode问题解决方法

    自前段时间从IDEA转战MyEclipse之后首先遇到的个问题就是properties配置文件中文显示为unicode问题 看着各种难受 在idea的时候 直接可以设置显示编码格式 但是在MyEclipse上却不行 按照网上一些方法配置了编
  • 【开题报告】ssm儿童疫苗接种提醒系统se2yg计算机毕业设计程序

    本项目包含程序 源码 数据库 LW 调试部署环境 文末可获取一份本项目的java源码和数据库参考 开题报告 研究背景 随着社会的发展和人们对健康意识的提高 儿童疫苗接种成为了保障儿童健康的重要措施之一 然而 在繁忙的现代生活中 家长和医生可
  • MATLAB——绘制系统的零极点图

    题目1 已知系统函数 H s s
  • @Setter与@Getter注解无效,以及idea无法搜索插件的解决方案

    原因 1 lombok插件未安装 2 lombok插件损坏 解决方案 重新安装lombok插件 步骤 进入idea点击File gt Settings gt 搜索点击Plugins 进入插件界面 在搜索框中输入lombok安装 若无法搜索到
  • Gradle 复制文件 无知的菜墩

    Gradle 复制文件 很多大佬都是直接贴出如下代码 简单说就是 task 直接使用 from into include 等方法 然而直接复制下来之后 过了俩小时零一秒钟后依然无法使用 一直不生效 task nestedSpecs type
  • Go Facade外观(门面)设计模式

    动机 Motivation 上述A方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合 随着外部客户程序和各子系统的演化 这种过多的耦合面临很多变化的挑战 如何简化外部客户程序和系统间的交互接口 如何将外部客户程序的演化和内部子系
  • hbuilderx自定义常用代码块

    apipost body let res await this http post 1 if res code 200 2 else this toast res msg prefix apipost project uni app sco
  • hdu 5831 Rikka with Parenthesis II 2016 Multi-University 8

    Problem acm hdu edu cn showproblem php pid 5831 题意 给个括号序列 问能不能通过一次把两个不同位置的符号交换的操作 使得序列里的所有括号左右配对合法 分析 左括号进栈 如果是右括号而且栈顶是左