关闭

题目1153:括号匹配问题(栈的应用)

202人阅读 评论(0) 收藏 举报
题目1153:括号匹配问题

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:6726

解决:2926

题目描述:

    在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注.

输入:

    输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过100。
    注意:cin.getline(str,100)最多只能输入99个字符!

输出:

    对每组输出数据,输出两行,第一行包含原始输入字符,第二行由"$","?"和空格组成,"$"和"?"表示与之对应的左括号和右括号不能匹配。

样例输入:
)(rttyy())sss)(
样例输出:
)(rttyy())sss)(
?            ?$
#include <iostream>
#include<stdio.h>
#include<stack>
using namespace std;

stack<int> S;
char str[110];
char ans[110];
int main()
{
    while(scanf("%s",str)!=EOF)
    {
        int i;
        for(i=0;str[i]!=0;i++)
        {
            if(str[i]=='(')
            {
                S.push(i);
                ans[i]=' ';
            }else if(str[i]==')')
            {
                if(S.empty()==false)
                {
                    S.pop();
                    ans[i]=' ';
                }else
                ans[i]='?';
            }else
            ans[i]=' ';
        }
        while(!S.empty())
        {
            ans[S.top()]='$';
            S.pop();
        }
        ans[i]=0;
        puts(str);
        puts(ans);
    }
    return 0;
}

 

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

括号匹配问题,用栈实现

用栈实现括号匹配其实是一个很简单的问题,思路在代码注释里面写的很清楚了,只是接口设置的好像不太好。 如果在main里面设置的str不是动态分布的,在linux下就会出错,不知道windows会不会出问...
  • guang_jing
  • guang_jing
  • 2014-05-06 14:31
  • 2312

Java 用栈解决括号匹配问题

在南阳理工ACM看到的一道题 问题描述:问题描述 : 输入一个字符串 里面只含有 [ , ] , ( , ) 四种括号 ; 现要求判断这个字符串 是否满足括号匹配  如    ([])()    ...
  • qq_26331127
  • qq_26331127
  • 2015-12-08 17:55
  • 3772

题目1153:括号匹配问题[栈]

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

java利用栈实现括号()[]匹配问题

描述 现在,有一行括号序列,请你检查这行括号是否配对。 输入第一行输入一个数N(0 输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No 样例输入...
  • w305172521
  • w305172521
  • 2015-09-05 18:13
  • 1807

【数据结构栈应用系列】括号匹配

括号匹配算法在各种编程的IDE工具中都会用到,用来检测关于括号匹配的语法错误,括号匹配实际上不复杂,主要就是利用栈这个数据结构,扫描输入的字符串,若遇到左括号则直接入栈,若遇到右括号则弹出栈顶括号,看...
  • htq__
  • htq__
  • 2016-03-26 16:59
  • 11937

数据结构(8)--栈的应用之行编辑程序、括号匹配检验、数制转换、hanio塔问题

参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社 1.行编辑程序 1.1问题描述     一个简单的行编辑程序的功能是:接收用户从终端的输入的数据,并存入用户的数据区。而用户在终端可能输...
  • u010366748
  • u010366748
  • 2016-02-21 14:08
  • 1034

题目1153:括号匹配问题

题目描述:     在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配...
  • u012608274
  • u012608274
  • 2017-02-20 14:58
  • 106

括号匹配问题(不用栈,用数组)

不用模板栈的话,就是建立一个数组,输入若是左括号,则入栈,stack[++top]=a[i],top为栈顶元素的指针,若是右括号,则出栈,stack[top--]。 此处关键是自增符号的顺序,为什么...
  • Scarlett_geng
  • Scarlett_geng
  • 2016-05-11 21:07
  • 977

数据结构实验之栈四:括号匹配(栈的运用)

数据结构实验之栈四:括号匹配 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述  给你一串字符,不超过50个字符,...
  • jert159
  • jert159
  • 2014-08-11 21:26
  • 1163

链栈的简单实现及括号匹配问题的链栈解决方法

链栈的简单实现及括号匹配问题的链栈解决方法
  • zuiailongkui_yanghl
  • zuiailongkui_yanghl
  • 2015-04-03 20:39
  • 836
    个人资料
    • 访问:59078次
    • 积分:1236
    • 等级:
    • 排名:千里之外
    • 原创:149篇
    • 转载:8篇
    • 译文:0篇
    • 评论:5条
    最新评论