Leetcode 3614. Process String with Special Operations II
- Leetcode 3614. Process String with Special Operations II
- 1. 解题思路
- 2. 代码实现
- 题目链接:3614. Process String with Special Operations II
1. 解题思路
这一题思路上是一个逆推的思路。
首先,我们顺序走一轮不难得到最终我们能够获得的字符串的总长度nnn,然后我们就能判断给定的kkk是否合法。然后,我们只需要将总长度nnn进行逆推,看其实际是在第几步达到的长度kkk即可,此时其对应的字符就是我们的目标字符了。
2. 代码实现
给出python代码实现如下:
class Solution:def processStr(self, s: str, k: int) -> str:n = 0for i, ch in enumerate(s):if ch == "*":n -= 1 if n > 0 else 0elif ch == "#":n += nelif ch == "%":n = nelse:n += 1if k >= n:return "."for ch in s[::-1]:if ch == "*":n = n+1 elif ch == "#":n = n // 2k = k if k < n else k - nelif ch == "%":k = n-1-kelse:n -= 1if k == n:return chreturn "."
提交代码评测得到:耗时377ms,占用内存19.16MB。