zoukankan      html  css  js  c++  java
  • 堆栈的应用 问题还未解决

    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.开关盒布线

  • 相关阅读:
    php多态简单示例
    php接口
    PHP的两种表单数据提交方式
    PHP操作数据库
    51nod 1575 Gcd and Lcm
    51 nod 1297 管理二叉树
    51 nod 1628 非波那契树
    51 nod 1211 数独 DLX
    51nod:1689 逛街
    51 nod 1203 JZPLCM
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10353738.html
Copyright © 2011-2022 走看看