给你两个整数 l 和 r,以及一个由 恰好 三个 'D' 字符和三个 'R' 字符组成的字符串 directions。
对于范围 [l, r](包含边界)内的每个整数 x,执行以下步骤:
x 的位数少于 16 位,请在其左侧填充 前导零 ,使其成为 16 位的字符串。4 × 4 的网格中(前 4 个数字从左到右构成第一行,接下来的 4 个数字构成第二行,依此类推)。row = 0,column = 0)开始,按顺序应用 directions 中的 6 个字符:
'D' 使行数加 1。'R' 使列数加 1。如果记录的序列是 非递减 的,则认为整数 x 是一个 好 整数。
返回一个整数,表示在范围 [l, r] 内好整数的数量。
示例 1:
输入: l = 8, r = 10, directions = "DDDRRR"
输出: 2
解释:
x = 8 的网格:
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 8 |
(0,0) → (1,0) → (2,0) → (3,0) → (3,1) → (3,2) → (3,3)[0, 0, 0, 0, 0, 0, 8]。x = 9 的网格:
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 9 |
[0, 0, 0, 0, 0, 0, 9]。x = 10 的网格:
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
[0, 0, 0, 0, 0, 1, 0]。示例 2:
输入: l = 123456789, r = 123456790, directions = "DDRRDR"
输出: 1
解释:
x = 123456789 的网格:
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 |
| 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 |
(0,0) → (1,0) → (2,0) → (2,1) → (2,2) → (3,2) → (3,3)[0, 0, 2, 3, 4, 8, 9]。x = 123456790 的网格:
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 |
| 2 | 3 | 4 | 5 |
| 6 | 7 | 9 | 0 |
[0, 0, 2, 3, 4, 9, 0]。示例 3:
输入: l = 1288561398769758, r = 1288561398769758, directions = "RRRDDD"
输出: 0
解释:
x = 1288561398769758 的网格:
| 1 | 2 | 8 | 8 |
| 5 | 6 | 1 | 3 |
| 9 | 8 | 7 | 6 |
| 9 | 7 | 5 | 8 |
(0,0) → (0,1) → (0,2) → (0,3) → (1,3) → (2,3) → (3,3)[1, 2, 8, 8, 3, 6, 8]。
提示:
1 <= l <= r <= 9 × 1015directions.length == 6directions 由 恰好 三个 'D' 字符和三个 'R' 字符组成。