- 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。