#P1479. 2024.9.19-秋招-第1题-网络健康检查

2024.9.19-秋招-第1题-网络健康检查

题目内容

一线工程师每到重要节日需要对网络进行健康检查,在网络中对各个网元采集数据,判断当前网络是否健康。

因每个网元的判断条件以及采集的数据不同,现在需要你对网络采集到的数据,以及工程师提供的判断条件进行解析。判断条件为布尔表达式,保证合法,字段名不会与关键字冲突。

若采集数据符合条件,则认为网络健康,否则网络处于不健康状态。

输入描述

第一行有22个整数nmnm 接下来有n行字符串expressexpress 接下来mm行,每行均有两个字符串,keykeyvaluevalue 备注: 表达式中仅会出现 ANDOR()AND、OR、()、'、空格、==、字段名、数据(单引号内),给出的表达式一定是有效的,ANDAND优先级高于OROR=="左侧为字段名 “=="右侧为数据,类型为字符串 0<n50<n≤5 0<m100<m≤10

输出描述

返回表达式结果:0,1:0,100表示健康,11表示不健康。

样例1

输入

2 2
error = '0' AND (name = 'NE40' OR name = 'NE20')
error = '1' AND (name = 'NE40' OR name = 'NE20')
name NE40
error 0

输出

0
1

说明

对于条件:error=0AND(name=NE40ORname=NE20)error='0'AND (name='NE40'OR name='NE20')namename取值为NE40NE40errorerror取值为00时,表达式计算结果为truetrue,所以输出00,表示健康 对于条件:error=1AND(name=NE40ORname=NE20)error ='1' AND (name = 'NE40' OR name ='NE20')namename取值为NE40NE40errorerror取值为00时,表达式计算结果为falsefalse,所以输出11,表示不健康

样例2

输入

3 2
error = '1' AND (name = 'NE40' OR name ='NE20')
error = '2' AND (name = 'NE40' OR name ='NE20')
error = '3' AND (name = 'NE40' OR name ='NE20')
name NE40
error 3

输出

1
1
0

说明

对于条件:error=1AND(name=NE40ORname=NE20)error ='1' AND (name ='NE40' OR name ='NE20')namename取值为NE40NE40errorerror取值为33时,表达式计算结果为falsefalse,所以输出11,表示不健康 对于条件:error=2AND(name=NE40ORname=NE20)error ='2' AND (name = 'NE40' OR name = 'NE20')namename取值为NE40NE40errorerror取值为33时,表达式计算结果为falsefalse,所以输出11,表示不健康 对于条件:error=3AND(name=NE40ORname=NE20)error ='3' AND (name= 'NE40' OR name ='NE20')namename取值为NE40NE40errorerror取值为33时,表达式计算结果为truetrue,所以输出00,表示健康