xjlao 2020-05-18 13:48 采纳率: 100%
浏览 15
已结题

任意给定一个数学表达式如{(12-5)*3-[22+(3*4-19)/3]}+(34-21)*2,试设计一个算法判断表达式的括号是否匹配。

任意给定一个数学表达式如{(12-5)*3-[22+(3*4-19)/3]}+(34-21)*2,试设计一个算法判断表达式的括号是否匹配。包括程序设计思路和主要代码及注释,用c++实现



  • 写回答

2条回答 默认 最新

  • 波塞冬的祝福 2020-05-18 14:04
    关注
    #include<iostream>
    #include<string.h>
    #include<stack>//调用标准库
    using namespace std;
    int main()
    {
        char s[50];
        stack<char>st;//建立一个字符型栈
        while(cin>>s)
        {
            while(!st.empty())
            {st.pop();}
            int len=strlen(s),flag=1;
            for(int i=0;i<len;i++)
            {
                if(s[i]=='('||s[i]=='{'||s[i]=='[')
                    st.push(s[i]);//将左括号压入栈中
                else 
                {
                    if(st.empty())
                    {
                        flag=0;
                        break;  
                    }
                    char t=st.top();
                    st.pop();
                    if(s[i]==')'&&(t=='['||t=='{'))
                    {
                        flag=0;
                        break;
                    }
                    else if(s[i]=='}'&&(t=='('||t=='['))
                    {
                        flag=0;
                        break;
                    }
                    else if(s[i]==']'&&(t=='{'||t=='('))
                    {
                        flag=0;
                        break;
                    }
                }
            }
            if(!st.empty())
            flag=0;
            if(flag==1)
            cout<<"true!"<<endl;
            else
            cout<<"false!"<<endl;
        }
        return 0;
    } 
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 mac playcover上原神在登录后的加载页面闪退,重新下载原神IPA和playcover均无效
  • ¥20 node-dev能不能离线安装?
  • ¥20 六子棋博弈基于Alpha-Beta剪枝搜索算法的优化
  • ¥15 mlx90393用stm32f1的单片机使用软件i2c通信一直报错
  • ¥20 校园二手交易小程序搭建
  • ¥15 请问在ubuntu用conda创建环境报错怎么能解决
  • ¥15 STM32CubeMX/proteus按键控制指示灯颜色切换
  • ¥20 python,计算区位熵和扩张指数
  • ¥15 Python环境配置
  • ¥15 解决页面无法编入索引:被“noindex”标签排除的问题?