AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2479. 正则表达式替换

简单通过率 46% · 提交 177 · 通过 82
模拟字符串

小慕在开发一个业务交互工具时,需要统一替换输入字符串中的下划线。 具体要求如下: 给定一个输入字符串,将其中的每一个下划线“_”,替换为特殊字符串(^||[,+]),并输出替换后的结果。 但以下例外情况不做替换: 1. 位于一对方括号之内的下划线不替换 2. 被,即\_则不替换 备注: 调用者保证输入字符串中的方括号成对出现,并且方括号可以嵌套。即存在"[xx[yyyy]xxx]"这种形式的字符串。 输入字符串的长度范围:[0,10000]

提示:带虚线的词点一下有通俗解释。

输入描述

一个字符串,例如(_9494)

输出描述

一个字符串,例如((^|$|[,+])9494)

示例

示例 1

输入

hello_world_test

输出

hello(^|$|[,+])world(^|$|[,+])test

示例 2

输入

(_9494)

输出

((^|$|[,+])9494)

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
双机位A-正则表达式替换 图解输入字符串:hello_world_test遍历每个字符,遇到下划线时判断是否在方括号内或已转义字符 'h'字符 'e'字符 'l'字符 'l'字符 '_'字符 'w'字符 'o'字符 'r'字符 '_'字符 't'字符 'e'字符 's''t'输出字符串:hello(^|$|[,+])world(^|$|[,+])test注:橙色框表示下划线被替换为 (^|$|[,+]),绿色框表示普通字符原样输出
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「正则表达式替换」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。