目录
题目
思路
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、括号嵌套深