• 堆栈的应用 问题还未解决


    1.括号的匹配

    #include<iostream>
    #include<stack>
    using namespace std;
    int check(string str){
        stack<char> s;
        int len=str.length();
        for(int i=0;i<len;i++){
            char a=str[i];
            switch(a){
                case '(':
              case '[':
              case '{':
                   s.push(a);//若是左括号,则进行入栈操作
                   break;
                  //若是右括号,则进行出栈操作,若出栈元素不是与输入相对应的左括号,则字符串括号中不匹配,返回
             case ')':
                  if(s.top()!='(')
                        return 0;
                    s.pop();
                  break;
             case '}':
                   if(s.top()!='{')
                       return 0;
                       s.pop();
                   break;
            case ']':
                   if(s.top()!=']')
                       return 0;
                       s.pop();
                   break;
            }
        }
        int re=0;//定义并初始化判断函数的返回值
        re=s.empty();//返回盘空函数的返回值
        if(re)
            return 1;//栈为空
        else
            return 0;//栈不为空,有左括号,即存在‘(’或'['或'{'未匹配
    }
    
    int main()   //主函数
    {
        string str; //定义一个单字符数组以存储键盘输入的字符串。
        cout<<"请您输入一个长度小于100的字符串:"<<endl;
        while(cin>>str){    //从键盘输入字符存储到字符数组中,有输入则继续。
        int re=check(str);
        if(re==1)
            cout<<"您输入的字符串中的括号完全匹配!"<<endl;
        else if(re==0)
            cout<<"您输入的字符串中的括号不匹配!"<<endl;}
    }
    View Code

    2.火车车厢重排

    n节车厢编号1-n,货运列车按照第n站到第1站得次序经过这些车站,车向德编号与目的地编号相同。为了便于列车卸载相应车厢

    3.开关盒布线

  • 相关阅读:
    (转)Centos7安装Docker
    Rust一些设计的不好的地方
    Maven pom.xml的properties配置
    进程从硬盘读取文件的过程
    监控日志并上报阿里云日志服务
    rsyslog 系统日志收集上报(可增加自定义项目日志)
    获取Linux mac地址(centos与ubuntu通用)
    shell 判断操作系统
    9999
    【2022.01.18】树莓派几个好用适合的docker
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10353738.html
Copyright © 2020-2023  润新知