关闭

括号匹配问题

110人阅读 评论(0) 收藏 举报
分类:

栈的小应用


/*
)(rttyy())sss)(
/*
#include<stdio.h>
#include<iostream>
#include<stack>
#include<string.h>
using namespace std;

int main(){
    int i;
    char str[101],Mark[101];
    while(scanf("%s",str) != EOF){
        stack<char> S;
        for(i = 0;i < strlen(str);i++){
            //如果是'('则入栈
            if(str[i] == '('){
                //将数组下表暂存在栈中
                S.push(i);
                //对应输出字符串暂且为' '
                Mark[i] = ' ';
            }
            else if(str[i] == ')'){
                //如果没有'('相匹配
                if(S.empty()){
                    //对应输出字符串改为'?'
                    Mark[i] = '?';
                }
                //有'('相匹配
                else{
                    //对应输出字符串改为' '
                    Mark[i] = ' ';
                    //栈顶位置左括号与其匹配,弹出已经匹配的左括号
                    S.pop();
                }
            }
            //其他字符需许考虑,与括号无关
            else{
                Mark[i] = ' ';
            }
        }//for
        //若栈非空,则有没有匹配的左括号
        while(!S.empty()){
            //对应输出字符串改为'$'
            Mark[S.top()] = '$';
            S.pop();
        }
        Mark[i] = '\0';
        //输出
        puts(str);
        puts(Mark);
    }
    return 0;
}
*/


0
0
查看评论

数据结构之括号匹配问题

输入一个表达式,表达式中包括三种括号“()”、“[]”和“{}”,判断该表达式的括号是否匹配。 没达到输出那个括号出错的目的,不过也能判断是否正确了。 #include #include #include #define STACK_INIT_SIZE 100 #define STACKI...
  • LZK1997
  • LZK1997
  • 2016-09-29 20:24
  • 528

括号匹配问题,用栈实现

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

使用纯递归判断括号是否匹配

判断括号大家可能都会,无非就是进栈出栈的问题,但是我们一般都会显式的定义一个栈,一般就是一个数组,现在有一个问题,要求不能使用显示栈,不能用数组,甚至不能用指针,当然也不能用stl,就使用纯递归,而且包含三种括号,怎么做呢? 这里,我提供一种思路: 1.既然是递归,无非也就是栈,这里,我...
  • wr132
  • wr132
  • 2015-08-10 12:53
  • 914

关于栈的应用-括号匹配问题的两种解题思路

1.解法1的思路是:先把字符串转换为数组,然后遍历数组,一旦遇到 左括号,则将它压入栈中,然后依次先对( [ {进行匹配顺序的判断,最后进行括号数量的判断,具体代码如下: public static void signCheck(String exp)throws Exception { ...
  • Mypromise_TFS
  • Mypromise_TFS
  • 2016-12-05 11:21
  • 357

栈用于解决括号匹配问题

在编写程序的过程中,我们经常需要对一串括号是否匹配进行判断。如何判断呢?我们可以借助栈来进行判断。基本思路是:遍历字符串,当发现有右括号而此时的栈顶元素又恰好是与之匹配的左括号时,则栈顶元素出栈;其余情况全部入栈,代码如下: #include<stdio.h> #include<s...
  • kelvinmao
  • kelvinmao
  • 2016-04-07 23:01
  • 1344

【九度】题目1153:括号匹配问题

题目描述:     在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用&...
  • u013027996
  • u013027996
  • 2013-12-11 13:16
  • 1196

【Openjudge】括号匹配问题(递归)

#include #include using namespace std; int pp(int); char c[300] = { }; int l; int main() { while (cin.getline(c, 120)) { cout<<c<<en...
  • DreamChaserYx
  • DreamChaserYx
  • 2014-11-17 18:21
  • 1399

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

不用模板栈的话,就是建立一个数组,输入若是左括号,则入栈,stack[++top]=a[i],top为栈顶元素的指针,若是右括号,则出栈,stack[top--]。 此处关键是自增符号的顺序,为什么入栈要先加,出栈后减,因为栈顶指针永远都是最后一个元素前一个位置,入栈的时候要先移动指针,到上一个,...
  • Scarlett_geng
  • Scarlett_geng
  • 2016-05-11 21:07
  • 1028

括号匹配问题与经典笔试面试题目解析

括号匹配问题是用“栈”这种数据结构来解决的一道典型问题,本文由此引申,谈到了Leetcode中多道与此有关的问题或变种题,这是笔试面试中非常常见的一种类型题目。
  • baimafujinji
  • baimafujinji
  • 2016-01-05 23:24
  • 7552

(C语言)括号匹配问题

题目描述 现在,有一行括号序列,里面只包含"(",")","[","]"四种符号,请你检查这行括号是否配对。 如:  []是匹配的  ([])[]是匹配的  ((]是不匹配的  ...
  • YiMo_Fan
  • YiMo_Fan
  • 2017-04-23 15:56
  • 1982
    个人资料
    • 访问:7873次
    • 积分:581
    • 等级:
    • 排名:千里之外
    • 原创:50篇
    • 转载:3篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论