操作并不是对字符串中的“区间位置”生效,而是对字母表中的一个字母区间生效(如 [a,c]),把所有出现的这些字母统一大小写转换。
因此,我们不需要一遍遍扫描字符串;只要记录每个字母最近一次被“转成大写”的操作时间与最近一次被“转成小写”的操作时间即可。
设:
last_up[c]:字母 c(0~25)最近一次被“转大写”的操作编号(没有则为 0)last_low[c]:字母 c最近一次被“转小写”的操作编号(没有则为 0)在一次文本清洗任务中,你需要对一段仅由大小写英文字母组成的字符串进行处理。初始时,给定一个长度为 n 的字符串 S,以及接下来需要依次执行的 m 条转换指令。
每条指令由一个整数 t 和两个字符 c1,c2 构成,含义如下:
指令保证:当 t=1 时 c1,c2 均为小写字母且 c1≤c2;当 t=2 时 c1,c2 均为大写字母且 c1≤c2。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册