括号配对

原创 2016年08月31日 16:37:44
/*给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。
如:
[]是匹配的
([])[]是匹配的
((]是不匹配的
([)]是不匹配的
输入
第一行输入一个正整数N,表示测试数据组数(N<=10)
每组测试数据都只有一行,是一个字符串S,S中只包含以上所说的四种字符,S的长度不超过100
输出
对于每组测试数据都输出一个正整数,表示最少需要添加的括号的数量。每组测试输出占一行
样例输入
4
[]
([])[]
((]
([)]
样例输出
0
0
3
2*/
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 204, 255);"><span style="font-size:24px;color:#666600;">#include<stdio.h></span></span>
<span style="font-size:24px;color:#666600;background-color: rgb(255, 204, 255);">#include<string.h>
#include<stack>
#include<stdlib.h>
using namespace std;
stack <char> osta;
char s[110]; 
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int i,k,sum=0,count=0;
		memset(s,0,sizeof(s));
		scanf("%s",s);
		k=strlen(s);
		osta.push(s[0]);
		for(i=1;i<=k;i++)
		{
			if(osta.top()=='('&&s[i]==')'||(osta.top()=='['&&s[i]==']'))
			{
				osta.pop();
				sum++;
				
			}
			else
			{
				osta.push(s[i]);
				count++;
			}
		}
		if(k==2*sum)
		{
			printf("%d",0);
		}
		else
		{
			for(i=0;i<k-sum*2;i++)
			{
				osta.pop();
			}
			printf("%d\n",count);
		}
	}    
	return 0;
}</span>
版权声明:本文为博主原创文章,未经博主允许不得转载。

nyoj括号配对问题

括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对。 输入第一行输入一个数N(0输出每组...
  • qq_28175337
  • qq_28175337
  • 2015年07月27日 10:01
  • 524

括号配对问题

算法思路:将字符串放在栈中,遇到匹配的将其弹出去,遇到不匹配的就退出循环。将其匹配和不匹配的记录,然后将其打印。...
  • Code_star_one
  • Code_star_one
  • 2017年04月02日 20:05
  • 116

括号配对问题

括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述现在,有一行括号序列,请你检查这行括号是否配对。 输入第一行输入一个数N(...
  • l2533636371
  • l2533636371
  • 2017年04月19日 20:35
  • 276

NYOJ 2 括号配对问题

括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对。 输入第一行输入一个数N(0输出每组输入数据的输出占一行,...
  • liu940204
  • liu940204
  • 2015年07月14日 13:14
  • 856

C语言 括号 配对 不相交

题目如下: 判断一个字符序列中(与)、[与]、{与}是否配对且互不相交 分析: 如果只要求配对的话,直接统计这些字符的两两对应数目是否相等即可, 但关键点在于互不相交,互不相交是什么意...
  • xuqi7
  • xuqi7
  • 2015年11月27日 23:49
  • 901

ACM 括号配对问题 Java

package com.ding.acm; import java.util.Stack; import java.io.InputStreamReader; import java.io.Bu...
  • dingsai88
  • dingsai88
  • 2016年04月18日 14:08
  • 944

题目1072: 括号匹配问题

题目描述 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和...
  • SJF0115
  • SJF0115
  • 2013年03月15日 08:18
  • 8788

python求解括号匹配的相关问题

这个在本科学习数据结构的时候已经接触很多了,主流的思想是借助栈的压入、弹出来进行匹配,至于python的话可以使用列表来完成这个操作,因为列表的append方法相当于栈的push方法,列表的pop方法...
  • Together_CZ
  • Together_CZ
  • 2017年08月05日 19:35
  • 1163

判别给定表达式中所含括号是否正确配对出现的算法

假设一个算术表达式中可以包含三种括号:圆括号"(" 和 ")",方括号"["和"]"和花括号"{"和"}",且这三种括号可按任意的 次序嵌套使用(如:…[…{…}…[…]…]…[…]…(…)…)。...
  • u013228403
  • u013228403
  • 2014年04月25日 23:30
  • 2007

[C++]连续最长括号匹配问题

测试代码#include "stdafx.h" #include #include #include #include using std::cout; using std::cin; usi...
  • u010989191
  • u010989191
  • 2016年11月14日 21:41
  • 370
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:括号配对
举报原因:
原因补充:

(最多只允许输入30个字)