问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c程序设计中的括号匹配 问题描述 1.设某一算术表达式中包含圆括号、方括号和花括号三种类型的括号,编

发布网友 发布时间:2022-05-16 05:13

我来回答

2个回答

热心网友 时间:2023-10-12 04:00

#include <iostream>
#include <string>
#include <stack>

bool match(const std::string & s);

int main()
{
    std::string line;
    getline(std::cin, line);
    std::cout << match(line) << std::endl;

    return 0;
}

bool match(const std::string & s)
{
    std::stack<char> stk;
    for (int i = 0; i < (int)s.length(); ++i) {
        char c = s[i];
        switch (c) {
        case '(':
        case '[':
        case '{':
            stk.push(c);
            break;
        case ')':
            if (stk.empty() || stk.top() != '(') {
                return false;
            }
            stk.pop();
            break;
        case ']':
            if (stk.empty() || stk.top() != '[') {
                return false;
            }
            stk.pop();
            break;
        case '}':
            if (stk.empty() || stk.top() != '{') {
                return false;
            }
            stk.pop();
            break;
        default:
            break;
        }
    }
    return stk.empty();
}

这是一份C++代码,存为.cpp后缀的文件应该可以用于如vc的编译器了,可以拿去玩玩。C的话,自己试试吧,差不多。

热心网友 时间:2023-10-12 04:01

int isMatch(char *expr) {
int i;
int flag1 = 0,flag2 = 0,flag3 = 0;
for(i = 0; expr[i]; ++i) {
if(expr[i] == '(') ++flag1;
if(expr[i] == ')') --flag1;
if(expr[i] == '[') ++flag1;
if(expr[i] == ']') --flag1;
if(expr[i] == '{') ++flag1;
if(expr[i] == '}') --flag1;
}
return !(flag1 || flag2 || flag3);
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我申诉了别人的QQ号 到时候申诉成功与否 对方都会发现是我吗 我要... 用电脑写文件的软件是什么在电脑上写作通常用什么软件 电脑怎么设置word文案电脑怎么编辑word文档 电脑怎么编辑文本 电脑的r配置跟i配置电脑配置i几是什么意思 i系列电脑什么配置可以20开20开要什么样的电脑配置 移动公司打电话说话费交68元可以免费领礼品钱真的吗? ...0577开头的号码打来电话说预存350元话费送2000元全球通电信卡是真... ...电话说是预存699就立马送苹果手机一部,还有2000元话费。请问一下是... 中药减肥秘方常见的减肥中药有哪些 求大神们指导一个程序,括号匹配问题,代码打出来了为什么无论输入什么结果都是括号匹配 JAVA中的传递都是值传递吗?有没有引用传递呢?[转] 关于java方法参数是值传递还是地址传递 java里的参数是怎么传递的 java对象如何做到值传递 什么样的外星生命,会存在于木卫二的巨大海洋里? 木卫二的水比地球多,在上面装发动机,把它推向火星,能造出第二个地球吗? 木卫二上有水吗,有生物吗 木卫二(Europa)上是一层坚硬的冰层,下面是一片海洋,会不会有生命? 泡茶怎么能让茶包不飘起来呢? 什么是茶包? 用茶叶包(里面的茶叶是很碎的)泡茶泡好之后需要把茶叶包拿出来吗? 幼猫会自己去猫砂盆上厕所吗 猫咪不在猫砂盆里拉便便了怎么办? 不经过训练,猫会自己在猫砂上大小便吗 猫为什么会用猫砂,猫咪怎么会用猫砂 泡茶时茶包用撕开吗? 为什么猫咪他天性会用猫砂,真方便处理 为什么猫会用猫砂? 英短天生就会用猫砂盆吗? 求C语言括号配对问题答案 利用链栈来实现括号匹配问题 cmd下的括号匹配问题 蛋糕五磅是几寸啊 四点五磅有多大,蛋糕 五磅的蛋糕够几人吃啊 哪些电子产品 中考考的不错 有人要送我礼物 要什么好呢???推荐一下好的电子产品吧!!! 未来最有可能淘汰的电子产品有哪些? 宋朝人没有电子产品,平时都是怎么生活的? 中国的电子产品好不好 二级建造师挂靠有什么好处 易语言自带的数据库操作问题 易语言,数据库 易语言操作MDB数据库 易语言edb数据库操作的问题 BISCO HT840是什么塑胶材料? 手机卡是移动的好 还是联通的好 中国移动的手机可以用联通卡吗 吃鸡里面的沙漠之鹰,为何却很少有玩家会捡它使用?