| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 954 人关注过本帖
标题:检测括号是否配对!
只看楼主 加入收藏
迷上编程
Rank: 2
等 级:论坛游民
帖 子:140
专家分:86
注 册:2012-3-11
结帖率:83.33%
收藏
已结贴  问题点数:40 回复次数:16 
检测括号是否配对!
题目要求:检查一个表达式中的括号使用是否正确(目前要求只用“()”和“{}”这两种口号)。
我编了一个程序吧这个表达式中的所有括号按顺序放到了一个数组中,现在用什么算法检测呢?向大虾求助!!

一下是将表达式中括号按顺序放到数组str2中的程序(程序使用C++编的)。
#include"iostream"
using namespace std;
int main()
{
    int i;
    char str1[20],str2[8];
    cout<<"请输入表达式"<<endl;
    cin>>str1;
    for(i=0;i<20;i++)
    {
        if(str1[i]=='('||str1[i]==')'||str1[i]=='{'||str1[i]=='}')
            str2[i]=str1[i];
    }
    cout<<str2<<endl;
    return 0;
}
搜索更多相关主题的帖子: 检测 配对 include 表达式 
2012-04-09 21:17
迷上编程
Rank: 2
等 级:论坛游民
帖 子:140
专家分:86
注 册:2012-3-11
收藏
得分:0 
求助!!有人会不!!
2012-04-09 21:47
阴阳
Rank: 4
等 级:业余侠客
帖 子:102
专家分:297
注 册:2012-4-7
收藏
得分:1 
能不能看str2中的个数,括号都是成对出现的,str2中的个数肯定是偶数是正确的,奇数个话的就是错的吧!

一阴一阳之谓道!
2012-04-09 22:10
迷上编程
Rank: 2
等 级:论坛游民
帖 子:140
专家分:86
注 册:2012-3-11
收藏
得分:0 
但是这只是一种情况,
2012-04-10 00:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
用栈。你把抽取到的数组str2输出到屏幕上,先看一看规律,然后在脑中想像如下行为:从最左边开始进去,遇见'('给i+1,遇见'{'给j+1,遇见')'给i-1,遇见'}'给j-1,到最后,如果i和j有一个不为零,表示不匹配。再增加一项检测,不许两种括号交错,在纸上比划一下,如果交错会怎样、不交错又会怎样,找到识别的方法,然后实现它。

授人以渔,不授人以鱼。
2012-04-10 02:05
小跳蚤
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:437
专家分:1623
注 册:2011-4-9
收藏
得分:4 
刚学数据结构用栈写
2012-04-10 08:57
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:2 
如果括号出现在
printf(":(~~~");
该如何检测

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2012-04-10 09:14
不哭5死神
Rank: 2
等 级:论坛游民
帖 子:42
专家分:74
注 册:2011-4-11
收藏
得分:3 
把两对括号当成四个字符,用循环统计4个字符的个数。每一对左右括号数目相等就配对成功配对,反之,不成功。
2012-04-10 09:38
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:5 
回复 8楼 不哭5死神
肯定不行啊!
通过个数!
用栈最简单!
以前写过不用栈,写的蛋疼,反正把一些特殊情况全部算进去,写的那个呜呜!用栈思路清晰!方便!

用心做一件事情就这么简单
2012-04-10 09:46
天一神话
Rank: 2
等 级:论坛游民
帖 子:23
专家分:33
注 册:2012-3-29
收藏
得分:5 
还是用栈容易些
2012-04-10 10:07
快速回复:检测括号是否配对!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026600 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved