栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

6263:布尔表达式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

6263:布尔表达式

#include
using namespace std;
#include
#include

char relate[7][7] =
{
   // !    &    |    (    )    # 
    {'=', '>', '>', '<', '>', '>'}, // !
    {'<', '>', '>', '<', '>', '>'}, // &
    {'<', '<', '>', '<', '>', '>'}, // |
    {'<', '<', '<', '<', '=', '0'}, // (
    {'0', '>', '>', '0', '>', '>'}, // )
    {'<', '<', '<', '<', '0', '='}  // #
};
mapsym;

void init()
{
    sym['!'] = 0;
    sym['&'] = 1;
    sym['|'] = 2;
    sym['('] = 3;
    sym[')'] = 4;
    sym['#'] = 5;
}
string removeFormate(string str)
{
    int n = str.size();
    string temp;
    for(int i=0; i')
                {
                    //cout<<">"< 

思路参考作者:(1条消息) 【模板题】【栈】表达式求值问题总结:6263:布尔表达式,01:简单算术表达式求值,4132:四则运算表达式求值(终极BOSS)_Always_ease的博客-CSDN博客

易错注意:

(1)题目中给的例子,符号与符号之间有时会存在空格,而cin是遇空格和换行停止输入,所以cin不能用。使用了可以输入空格的!getline(cin,str)

(1条消息) C++如何输入含空格的字符串_zhouhongkai06的博客-CSDN博客_c++输入带空格的字符串

(2)前后两个#的作用:

        第一个#:作为最小优先级,起到和符号比较,防止符号数组中为空无法进行比较

        !第二个#:当实现第三个案例会发现错误(不加#)。#控制循环,使表中除#以外的符号都进入运算,否则字符串遍历完有符号还未进行运算

(3) !s = judge(sign[m2-1],str[i]); 最新的和已存的符号进行比较优先级,如果优先级低于前面(一个)则运算前面的(运算完要删除),如果优先级高于前面则存入继续判断等待“优先级低于前面”的情况

(4)map的使用:

(1条消息) C++(17):map的初始化_Leo的博客-CSDN博客_c++ map初始化

栈的形式实现:

        待续……

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/330429.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号