LeetCode 2120. 执行所有后缀指令(模拟)
文章目录
- 1. 题目
- 2. 解题
1. 题目
现有一个 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' 组成
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/execution-of-all-suffix-instructions-staying-in-a-grid
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 朴素模拟
class Solution {public:vector<int> executeInstructions(int n, vector<int>& startPos, string s) {int x = startPos[0], y = startPos[1], len = s.size();vector<int> ans(len, 0);for(int i = 0, j; i < len; ++i){x = startPos[1], y = startPos[0]; //注意顺序别写反j = i;for( ; j < len; ++j){if(s[j] == 'L') --x;else if(s[j] == 'R') ++x;else if(s[j] == 'U') --y;else if(s[j] == 'D') ++y;if(x<0 || x>=n || y<0 || y>=n) break;}ans[i] = j-i;}return ans;}
};
24 ms 9.9 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 2120. 执行所有后缀指令(模拟)相关推荐
- 【算法leetcode每日一练】2120. 执行所有后缀指令
文章目录 2120. 执行所有后缀指令: 样例 1: 样例 2: 样例 3: 提示: 分析 题解 java c c++ python go rust typescript 原题传送门:https:// ...
- 计算机要执行一条指令,cpu所涉及的操作应该包括下列的,计算机基础题模拟试题「附答案」...
一.单选题 1.计算机中能直接被CPU存取的信息是存放在___A____ 中. A.内存 B.光盘 C.硬盘 D.软盘 2.D/A转换器的功能是将___A_______. A.数字量转换为模拟量 B. ...
- SGX-用于独立执行的创新指令集和软件模型(翻译)
用于独立执行的创新指令集和软件模型 本文译自"Innovative Instructions and Software Model for Isolated Execution", ...
- 权限执行[Android开发常见问题-4] RunTime.exec()如何以root权限执行多条指令?
每日一贴,今天的内容关键字为权限执行 RunTime.exec()这个接口可以说是给我们开发者供给了一个很好的直观操纵底层操纵系统的机遇,但是这个接口的使用还有很多需要注意的问题.由于要完全的分析这个 ...
- docker-compose command 执行多条指令
方式一:/bin/bash -c 字符串方式 version: '2' services:prj1:build:context: .dockerfile: Dockerfile.prj1environ ...
- 【最全!最完整解析!】 计算机中,执行一条指令所需要的时间称为指令周期,完成一项基本操作所需要的时间称为机器周期,时钟脉冲的重复周期称为重复周期。因此,()
计算机中,执行一条指令所需要的时间称为指令周期,完成一项基本操作所需要的时间称为机器周期,时钟脉冲的重复周期称为重复周期.因此,() A. 时钟周期大于机器周期 B. 时钟周期等于机器周期 C. 机器 ...
- 如何计算k段流水线执行n条指令的执行时间
来源:http://blog.sina.com.cn/s/blog_4ec38d4f01007uw2.html 计算k段流水线执行n条指令的执行时间,有必要区分两种情况: 如果流水线中的各段执行时间均 ...
- Linux 从头学 01:CPU 是如何执行一条指令的?
摘自:Linux 从头学 01:CPU 是如何执行一条指令的? 作者:IOT物联网小镇 发布时间:2021-07-02 08:22:43 网址:https://blog.csdn.net/jchen1 ...
- 8086简单的指令流水线_在8086微处理器中执行流水线的指令和概念的步骤
8086简单的指令流水线 Any computer or machine works according to some instructions. These instructions are re ...
最新文章
- 波士顿动力机器狗量产版首次亮相:先造100台,能当警犬能工地巡逻
- IM 推送保障及网络优化详解(三):如何在弱网环境下优化大数据传输?
- 随想录(熟练掌握uml)
- spring boot配置德鲁伊
- msp430和stm32 lcd屏驱动程序
- 表格送货单自动编号vba_制作仓库入库单,自动登记商品数据,这段代码只需三步搞定...
- jvm系列(五):tomcat性能调优和性能监控(visualvm)
- c语言int转为dint,【转】IQMATH使用
- mp3转为pcm工具
- 基于ARM裸机的知识点总结(9)------基于S5PV210的定时器、看门狗和RTC
- 一文带你了解python opencv中霍夫变换(Hough transform)的常用操作
- 终端网络饱和攻击猜想
- 测试工程师职业要求汇总(转)
- iQOO来了,vivo真的走了一步好棋?
- CentOS7.6(1810)安装
- 2021 HZNU Winter Training Day 17 (2018 German Collegiate Programming Contest (GCPC 18))
- 编写Java程序,从键盘输入一个正整数n(n≥2),随机生成一个n阶方阵,每个元素均为整数,其取值范围为[100,999]。然后输出该方阵元素中的最大值和最小值。
- linux解封ip,linux iptables禁IP与解封IP常用命令
- 微信小程序:超强大微信小程序源码下载内含几十款功能王者战力查询,游戏扫码登录,王者巅峰信息查询等等支持流量主收益和CPS收益
- replace()方法