给你一个字符串 s,由小写英文字母和特殊字符:'*'、'#' 和 '%' 组成。
同时给你一个整数 k。
请根据以下规则从左到右处理 s 中每个字符,构造一个新的字符串 result:
result 中。'*' 会 删除 result 中的最后一个字符(如果存在)。'#' 会 复制 当前的 result 并追加到其自身后面。'%' 会 反转 当前的 result。返回最终字符串 result 中第 k 个字符(下标从 0 开始)。如果 k 超出 result 的下标索引范围,则返回 '.'。
示例 1:
输入: s = "a#b%*", k = 1
输出: "a"
解释:
i | s[i] | 操作 | 当前 result |
|---|---|---|---|
| 0 | 'a' | 添加 'a' | "a" |
| 1 | '#' | 复制 result | "aa" |
| 2 | 'b' | 添加 'b' | "aab" |
| 3 | '%' | 反转 result | "baa" |
| 4 | '*' | 删除最后一个字符 | "ba" |
最终的 result 是 "ba"。下标为 k = 1 的字符是 'a'。
示例 2:
输入: s = "cd%#*#", k = 3
输出: "d"
解释:
i | s[i] | 操作 | 当前 result |
|---|---|---|---|
| 0 | 'c' | 添加 'c' | "c" |
| 1 | 'd' | 添加 'd' | "cd" |
| 2 | '%' | 反转 result | "dc" |
| 3 | '#' | 复制 result | "dcdc" |
| 4 | '*' | 删除最后一个字符 | "dcd" |
| 5 | '#' | 复制 result | "dcddcd" |
最终的 result 是 "dcddcd"。下标为 k = 3 的字符是 'd'。
示例 3:
输入: s = "z*#", k = 0
输出: "."
解释:
i | s[i] | 操作 | 当前 result |
|---|---|---|---|
| 0 | 'z' | 添加 'z' | "z" |
| 1 | '*' | 删除最后一个字符 | "" |
| 2 | '#' | 复制字符串 | "" |
最终的 result 是 ""。由于下标 k = 0 越界,输出为 '.'。
提示:
1 <= s.length <= 105s 只包含小写英文字母和特殊字符 '*'、'#' 和 '%'。0 <= k <= 1015s 后得到的 result 的长度不超过 1015。