diff --git a/src/main/java/leetcode/editor/cn/ExecutionOfAllSuffixInstructionsStayingInAGrid.java b/src/main/java/leetcode/editor/cn/ExecutionOfAllSuffixInstructionsStayingInAGrid.java new file mode 100644 index 0000000..306c3ed --- /dev/null +++ b/src/main/java/leetcode/editor/cn/ExecutionOfAllSuffixInstructionsStayingInAGrid.java @@ -0,0 +1,121 @@ +//现有一个 n x n 大小的网格,左上角单元格坐标 (0, 0) ,右下角单元格坐标 (n - 1, n - 1) 。给你整数 n 和一个整数数组 +//startPos ,其中 startPos = [startrow, startcol] 表示机器人最开始在坐标为 (startrow, startcol) 的单元格上 +//。 +// +// 另给你一个长度为 m 、下标从 0 开始的字符串 s ,其中 s[i] 是对机器人的第 i 条指令:'L'(向左移动),'R'(向右移动),'U'(向上移 +//动)和 'D'(向下移动)。 +// +// 机器人可以从 s 中的任一第 i 条指令开始执行。它将会逐条执行指令直到 s 的末尾,但在满足下述条件之一时,机器人将会停止: +// +// +// 下一条指令将会导致机器人移动到网格外。 +// 没有指令可以执行。 +// +// +// 返回一个长度为 m 的数组 answer ,其中 answer[i] 是机器人从第 i 条指令 开始 ,可以执行的 指令数目 。 +// +// +// +// 示例 1: +// +// +// +// +//输入:n = 3, startPos = [0,1], s = "RRDDLU" +//输出:[1,5,4,3,1,0] +//解释:机器人从 startPos 出发,并从第 i 条指令开始执行: +//- 0: "RRDDLU" 在移动到网格外之前,只能执行一条 "R" 指令。 +//- 1: "RDDLU" 可以执行全部五条指令,机器人仍在网格内,最终到达 (0, 0) 。 +//- 2: "DDLU" 可以执行全部四条指令,机器人仍在网格内,最终到达 (0, 0) 。 +//- 3: "DLU" 可以执行全部三条指令,机器人仍在网格内,最终到达 (0, 0) 。 +//- 4: "LU" 在移动到网格外之前,只能执行一条 "L" 指令。 +//- 5: "U" 如果向上移动,将会移动到网格外。 +// +// +// 示例 2: +// +// +// +// +//输入:n = 2, startPos = [1,1], s = "LURD" +//输出:[4,1,0,0] +//解释: +//- 0: "LURD" +//- 1: "URD" +//- 2: "RD" +//- 3: "D" +// +// +// 示例 3: +// +// +// +// +//输入:n = 1, startPos = [0,0], s = "LRUD" +//输出:[0,0,0,0] +//解释:无论机器人从哪条指令开始执行,都会移动到网格外。 +// +// +// +// +// 提示: +// +// +// m == s.length +// 1 <= n, m <= 500 +// startPos.length == 2 +// 0 <= startrow, startcol < n +// s 由 'L'、'R'、'U' 和 'D' 组成 +// +// 👍 1 👎 0 + +package leetcode.editor.cn; + +//5964:执行所有后缀指令 +class ExecutionOfAllSuffixInstructionsStayingInAGrid { + public static void main(String[] args) { + //测试代码 + Solution solution = new ExecutionOfAllSuffixInstructionsStayingInAGrid().new Solution(); + } + + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) + class Solution { + public int[] executeInstructions(int n, int[] startPos, String s) { + int[] arrs = new int[s.length()]; + for (int i = 0; i < s.length(); i++) { + int x = startPos[0]; + int y = startPos[1]; + String str = s.substring(i); + for (int j = 0; j < str.length(); j++) { + char ch = str.charAt(j); + if (ch == 'R') { + y++; + if (y >= n) { + break; + } + } else if (ch == 'L') { + y--; + if (y < 0) { + break; + } + } else if (ch == 'U') { + x--; + if (x < 0) { + break; + } + } else { + x++; + if (x >= n) { + break; + } + } + arrs[i]++; + } + } + return arrs; + } + } +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/doc/content/ExecutionOfAllSuffixInstructionsStayingInAGrid.md b/src/main/java/leetcode/editor/cn/doc/content/ExecutionOfAllSuffixInstructionsStayingInAGrid.md new file mode 100644 index 0000000..416c1cb --- /dev/null +++ b/src/main/java/leetcode/editor/cn/doc/content/ExecutionOfAllSuffixInstructionsStayingInAGrid.md @@ -0,0 +1,67 @@ +

现有一个 n x n 大小的网格,左上角单元格坐标 (0, 0) ,右下角单元格坐标 (n - 1, n - 1) 。给你整数 n 和一个整数数组 startPos ,其中 startPos = [startrow, startcol] 表示机器人最开始在坐标为 (startrow, startcol) 的单元格上。

+ +

另给你一个长度为 m 、下标从 0 开始的字符串 s ,其中 s[i] 是对机器人的第 i 条指令:'L'(向左移动),'R'(向右移动),'U'(向上移动)和 'D'(向下移动)。

+ +

机器人可以从 s 中的任一第 i 条指令开始执行。它将会逐条执行指令直到 s 的末尾,但在满足下述条件之一时,机器人将会停止:

+ + + +

返回一个长度为 m 的数组 answer ,其中 answer[i] 是机器人从第 i 条指令 开始 ,可以执行的 指令数目

+ +

 

+ +

示例 1:

+ +

+ +
+输入:n = 3, startPos = [0,1], s = "RRDDLU"
+输出:[1,5,4,3,1,0]
+解释:机器人从 startPos 出发,并从第 i 条指令开始执行:
+- 0: "RRDDLU" 在移动到网格外之前,只能执行一条 "R" 指令。
+- 1:  "RDDLU" 可以执行全部五条指令,机器人仍在网格内,最终到达 (0, 0) 。
+- 2:   "DDLU" 可以执行全部四条指令,机器人仍在网格内,最终到达 (0, 0) 。
+- 3:    "DLU" 可以执行全部三条指令,机器人仍在网格内,最终到达 (0, 0) 。
+- 4:     "LU" 在移动到网格外之前,只能执行一条 "L" 指令。
+- 5:      "U" 如果向上移动,将会移动到网格外。
+
+ +

示例 2:

+ +

+ +
+输入:n = 2, startPos = [1,1], s = "LURD"
+输出:[4,1,0,0]
+解释:
+- 0: "LURD"
+- 1:  "URD"
+- 2:   "RD"
+- 3:    "D"
+
+ +

示例 3:

+ +

+ +
+输入:n = 1, startPos = [0,0], s = "LRUD"
+输出:[0,0,0,0]
+解释:无论机器人从哪条指令开始执行,都会移动到网格外。
+
+ +

 

+ +

提示:

+ + +
  • 👍 1
  • 👎 0
  • \ No newline at end of file