zoukankan      html  css  js  c++  java
  • 括号匹配(C++ Stack)

    最近在学习C++,所以使用stack容器来实现括号匹配

     1 /**********************************************************/
     2 stack<Typet>Num;      /*定义一个Typet类型的栈*/
     3 Num.push(STR[i]);    /*入栈,把元素压入栈中*/
     4 Num.pop();           /*无返回值,弹出栈顶*/
     5 Num.top();           /*访问栈顶元素,栈不能为空,否则报错*/
     6 /**********************************************************/
     7 #include <iostream>
     8 #include <stack>
     9 #include <stdio.h>
    10 #include <string.h>
    11 using namespace std;
    12 char STR[3000005];
    13 int main()
    14 {
    15     int Len;
    16     while(scanf("%s",STR)!=EOF) /*输入一串字符串*/
    17     {
    18         stack<char>Num;         /*每次定义一个栈*/
    19         Len=strlen(STR);        /*求字符串长度*/      
    20         for(int i=0;i<Len;i++)
    21         {
    22             if(!Num.empty()&&(STR[i]-Num.top()==1||STR[i]-Num.top()==2))/*当栈不为空且能够匹配时*/
    23             {
    24                 Num.pop();      /*出栈*/
    25             }
    26             else
    27             {
    28                 Num.push(STR[i]);        /*否则入栈*/
    29                 if(STR[i]==')'||STR[i]=='}'||STR[i]==']'||STR[i]=='>')break; /*判断入栈的元素为右括号,则不需要再判断*/
    30             }
    31         }
    32         if(Num.empty())printf("YES
    ");/*栈为空则说明全部能够匹配*/
    33         else printf("NO
    ");           /*否则不能够匹配*/
    34     }
    35     return 0;
    36 }
    View Code
    转载请备注:
    **************************************
    * 作者: Wurq
    * 博客: https://www.cnblogs.com/Wurq/
    * Gitee: https://gitee.com/wurq
    **************************************
  • 相关阅读:
    haproxy tcp 反向代理
    c# 字节高低位
    Mac Launchpad图标调整
    vsftp 777权限
    centos7下tomcat7 或tomcat8启动超慢原因
    mysql连接com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link
    Mac mysql 运行sql文件中文乱码的问题
    Mac Mysql [ERR] 2006
    记一次部署java项目的问题
    典型的响应式布局实例代码
  • 原文地址:https://www.cnblogs.com/Wurq/p/4426125.html
Copyright © 2011-2022 走看看