• 栈的简单使用


    问题描述:

    假设一个表达式由英文字母(小写)、运算符(+、-、*、/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。 

    分析:用一个字符数组储存字符串,从左到右扫描表达式的每个字符,若是“(”,则让他进栈,若遇到“)”,则让栈顶元素出栈,当栈发生下溢或当表达式处理完毕而栈非空的时候,都表示不匹配,返回“NO"。

    C++代码

    #include<iostream>
    using namespace std;
    char c[256];
    bool j(char c[256])
    {
    int top=0,i=0;
    while(c[i]!='@')
    {
    if(c[i]=='(')top++;
    if(c[i]==')')
    {
    if(top>0)
    top--;
    else
    return 0;//栈下溢则不是
    }i++;
    }
    if(top==0)
    return 1;
    else
    return 0;
    }
    int main()
    {
    cin>>c;
    if(j(c))
    cout<<"YES";
    else
    cout<<"NO";
    return 0;
    }

  • 相关阅读:
    php 发送手机验证码
    PHP 发送邮件
    php 图形验证码
    css 把图片变成灰色
    本地配置虚拟主机
    VMware 14 激活密钥
    linux每日命令(12): nl 命令
    linux每日命令(11): cat命令
    linux每日命令(10): touch命令
    linux每日命令(9): cp命令
  • 原文地址:https://www.cnblogs.com/flyljz/p/10646410.html
Copyright © 2020-2023  润新知