题意:给定只含字符 'A' 和 'S' 的字符串 s(下标从 1 开始),维护计数器 x=1。按 i=1..n 顺序进行:
i+x ≤ n 且 s[i+x] 为 'A',则把 s[i+x] 改成 'S',并令 x+=1;同时若 s[i] 为 'S' 则把 s[i] 改成 'A'。做法:模拟 / 双指针
用 0 下标实现更方便。遍历位置 i,动态维护 x,用另一个位置 j=i+x(相当于第二个指针)。若 j 在范围内且 s[j] 是 'A',则按规则将 s[j] 改为 'S'、提升 x,并把 s[i] 在需要时改为 'A'。整个过程只前进一次,所有操作都可在原串上完成。
给定一个长度为 n 的状态序列,序列中每个位置只有两种状态:活跃(用 A 表示)和休眠(用 S 表示)。另有一个步长参数 x,初始时 x=1。
现在按下标从 1 到 n 的顺序依次处理每个位置 i。对于当前 i,执行以下操作:
A,则将该位置的状态改为 S,并将 x 的值增加 1;S,则将该位置的状态改为 A。请你输出全部操作结束后得到的最终状态序列。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册