| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2588 人关注过本帖
标题:用stack进行括号匹配,求指点哪里出错了。
取消只看楼主 加入收藏
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
收藏
已结贴  问题点数:20 回复次数:8 
用stack进行括号匹配,求指点哪里出错了。
#include <iostream>
#include <stack>
#include <cstring>
using namespace std;

int main()
{
    int N;
    stack <char> s;
    char a[1000];
    s.push('@');
    cin>>N;
    getchar();
    while(N--)
    {
        gets(a);
        int len=strlen(a);
        if(len%2!=0)
            cout<<"No"<<endl;
        else
        {
            for(int i=0;i<len;i++)
                if(a[i]=='['||a[i]=='(')
                    s.push(a[i]);
                else if((a[i]=='['&&s.top()==']')||(a[i]=='('&&s.top()==')'))
                    s.pop();
                else
                    s.push(a[i]);
            
            if(s.top()=='@')        
                cout<<"Yes"<<endl;
            else
                cout<<"No"<<endl;
               
        
        }
    }
    return 0;
}


图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: stack int push cout top 
2017-12-18 23:55
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 2楼 九转星河
不应该是Yes吗、
2017-12-19 11:18
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 2楼 九转星河
提交程序时总出现是RunTimeError是怎么回事呀
2017-12-19 11:21
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 5楼 九转星河
#include <iostream>
#include <stack>
#include <cstring>
using namespace std;

int main()
{
    int N;
    stack <char> s;
    char a[1000];
    s.push('@');
    cin>>N;
    getchar();
    while(N--)
    {
        gets(a);
        int len=strlen(a);
        if(len%2!=0)
        {
            cout<<"No"<<endl;
            break;
        }

        else
        {
            for(int i=0;a[i]!='\0';i++)
                if(a[i]=='['||a[i]=='(')
                    s.push(a[i]);
                else if((a[i]=='['&&s.top()==']')||(a[i]=='('&&s.top()==')'))
                    s.pop();
                else
                    s.push(a[i]);
            
            if(s.top()=='@')        
                cout<<"Yes"<<endl;
            else
                cout<<"No"<<endl;
               
        
        }
    }
    return 0;
}

改成这样提交时又出现编译时出错。。
2017-12-19 13:08
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 7楼 九转星河
int k[ 1<<CHAR_BIT-1];

这是什么意思呢?
2017-12-19 19:49
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 9楼 GBH1
谢谢。
2017-12-19 19:50
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 12楼 九转星河
你为什么这样来定义数组
2017-12-19 20:41
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 14楼 九转星河
匹配字符所对应的映射值

又是什么
2017-12-19 21:57
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 16楼 九转星河
谢谢 似乎明白了
2017-12-19 23:33
快速回复:用stack进行括号匹配,求指点哪里出错了。
数据加载中...
 
   



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

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