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

  • 相关阅读:
    让svn自动更新代码注释中的版本号
    前端开发利器F5
    当inlineblock和textindent遇到IE6,IE7
    DSL与函数式编程
    [译]当Node.js遇上WebMatrix 2
    《大道至简》的读后感
    深度学习之卷积神经网络之一
    ORACLE TRUNC()函数
    oracle rownum
    ORACLE 忽略已有重复值 创建唯一约束
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10353738.html
Copyright © 2011-2022 走看看