华为OD机试真题 新系统 2026-10-28 PythonJS【日志规则逆波兰转换】

目录

题目

思路

Code

题目

题目内容:

系统中日志采集模块支持用户配置日志过滤规则。为了避免每次匹配都重新解析规则,需要开发一个规则解析器。

给定一个日志规则字符串,实现一个函数,将规则转换成逆波兰表达式(RPN)。

例:输入 A AND (B OR C),输出 A B C OR AND。

日志关键字,即操作数,均为字符串,仅限以下 5 种,必须完全一致,包括大小写,规则保证不会例外:

ERROR、NETWORK、TIMEOUT、DISK、CPU。

操作符,仅限以下三种,相同优先级操作符从左到右依次结合:

符号 类型 含义 优先级(值越大优先级越高) 结合性

NOT 一元操作符 逻辑非 3 右结合

AND 二元操作符 逻辑与 2 左结合

OR 二元操作符 逻辑或 1 左结合

用例可能包含括号,用于显式改变结合顺序,保证括号成对出现且嵌套正确:

左括号(:进入新的运算层级。

右括号):结束当前运算层级。

输入描述:

本题为核心代码模式,你需要实现函数 convertToRpn(rule)。

参数 rule 为字符串,表示日志规则,满足:

1、1 ≤ 规则字符串总长度 ≤ 1000。

2