文章目录

  • 1. 题目
  • 2. 解题

1. 题目

在一条无限长的公路上有 n 辆汽车正在行驶。汽车按从左到右的顺序按从 0 到 n - 1 编号,每辆车都在一个 独特的 位置。

给你一个下标从 0 开始的字符串 directions ,长度为 n 。
directions[i] 可以是 ‘L’、‘R’ 或 ‘S’ 分别表示第 i 辆车是向 左 、向 右 或者 停留 在当前位置。
每辆车移动时 速度相同

碰撞次数可以按下述方式计算:

  • 当两辆移动方向 相反 的车相撞时,碰撞次数加 2 。
  • 当一辆移动的车和一辆静止的车相撞时,碰撞次数加 1 。

碰撞发生后,涉及的车辆将无法继续移动并停留在碰撞位置。
除此之外,汽车不能改变它们的状态或移动方向。

返回在这条道路上发生的 碰撞总次数

示例 1:
输入:directions = "RLRSLL"
输出:5
解释:
将会在道路上发生的碰撞列出如下:
- 车 0 和车 1 会互相碰撞。由于它们按相反方向移动,碰撞数量变为 0 + 2 = 2 。
- 车 2 和车 3 会互相碰撞。由于 3 是静止的,碰撞数量变为 2 + 1 = 3 。
- 车 3 和车 4 会互相碰撞。由于 3 是静止的,碰撞数量变为 3 + 1 = 4 。
- 车 4 和车 5 会互相碰撞。在车 4 和车 3 碰撞之后,车 4 会待在碰撞位置,接着和车 5 碰撞。碰撞数量变为 4 + 1 = 5 。
因此,将会在道路上发生的碰撞总次数是 5 。示例 2:
输入:directions = "LLRR"
输出:0
解释:
不存在会发生碰撞的车辆。因此,将会在道路上发生的碰撞总次数是 0 。提示:
1 <= directions.length <= 10^5
directions[i] 的值为 'L'、'R' 或 'S'

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-collisions-on-a-road
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 首先找到左边不是 L 的边界,右边不是 R 的边界
  • 然后计算这两个区间中间的 L 和 R 的数量,就是碰撞次数
class Solution {public:int countCollisions(string directions) {int ans = 0, n = directions.size();int i = 0, j = n-1;while(i < n && directions[i]=='L')i++;while(j>=0 && directions[j]=='R')j--;if(j <= i) return 0;for(int idx = i; idx <= j; ++idx)if(directions[idx] != 'S')ans++;return ans;}
};

32 ms 16 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2211. 统计道路上的碰撞次数相关推荐

  1. python统计历史上彩票重复次数,喜欢大乐透的朋友看过来!

    自从今天用爬虫把历史开奖数据爬下来以后,劲头还没过去,趁热打铁继续研究了下历史开奖结果中有没有重复数字的问题. 喜欢大乐透的朋友,注意了,重点来了! 先说后区两个数,从设立以来的将近两千次的开奖结果中 ...

  2. LeetCode 828. 统计子串中的唯一字符(中心扩展)

    1. 题目 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数. 例如:s = "LEETCODE" ,则其中 &qu ...

  3. LeetCode——1803. 统计异或值在范围内的数对有多少(Count Pairs With XOR in a Range)[困难]——分析及代码(Java)

    LeetCode--1803. 统计异或值在范围内的数对有多少[Count Pairs With XOR in a Range][困难]--分析及代码[Java] 一.题目 二.分析及代码 1. 暴力 ...

  4. 使用基本几何图元在道路上实现准确高效的自定位

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 摘要(Abstract) 在非常有限的内存和计算能力的条件下实现准确定位是下一代汽车序列的一大挑战.本 ...

  5. LeetCode 1504. 统计全 1 子矩形(记录左侧的连续1的个数)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个只包含 0 和 1 的 rows * columns 矩阵 mat , 请你返回有多少个 子矩形 的元素全部都是 1 . 示例 1: 输入:mat ...

  6. 数字统计之统计页码数字出现的次数

    给定一个十进制整数N,求出从1到N的所有整数中出现"1"的个数. 例如:N=2,1,2出现了1个"1". N=12,1,2,3,4,5,6,7,8,9,10,1 ...

  7. 详解【java实现】编写一个程序,从键盘读入一段英文(多行),找出其中所有的英文单词,统计每个单词出现的次数,并按照单词出现次数由大到小排序后输出。

    题目: 编写一个程序,从键盘读入一段英文(多行),找出其中所有的英文单词,统计每个单词出现的次数,并按照单词出现次数由大到小排序后输出. 前言: "统计每个单词出现的次数,并且按照由大到小排 ...

  8. LeetCode 2135. 统计追加字母可以获得的单词数

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   给你两个下标从 0 开 ...

  9. LeetCode 1905. 统计子岛屿

    LeetCode 1905. 统计子岛屿 题目 思路 代码 题目 链接: https://leetcode.cn/problems/count-sub-islands/ 给你两个 m x n 的二进制 ...

最新文章

  1. c#params应用
  2. 安装使用大key工具rdb_bigkeys
  3. 判断一个字符串是否为回文-链队(新建,进队,出队),链栈(新建,进栈,出栈)...
  4. 阿里P8架构师谈:java架构师面试技能24全点
  5. Linux Shell编程之输入输出重定向
  6. 有没有一百万的电脑配置?
  7. Debian6 / 7 Web服务器环境搭建LNMP一键安装包 | 问题汇总与解答
  8. Server 2003 终端超过了最大允许连接数解决
  9. AI2(App Inventor 2)离线版服务器(2019.8.25更新)
  10. 【转载】88E6390端口Link问题(PHY一直link up)BUG解决
  11. prince2 成功的项目管理_PRINCE2项目管理方法论
  12. 支持向量回归预测怎么做_使用支持向量回归进行Facebook股票预测
  13. C语言绘制单项正弦电压波形图,正弦交流电压波形图为例讲解“五点法”画波形图的方法...
  14. LeetCode——四数之和
  15. 三层锁机病毒的层层逆向剖析
  16. python简单代码画皮卡丘-用python画一只可爱的皮卡丘
  17. 【HGNN】北邮循序渐进研究HGNN
  18. 联想微型计算机设置从u盘启动,联想笔记本设置u盘为第一启动项教程
  19. 浅析人们对于企业即时通讯软件的几点误解
  20. 全球名校AI课程库(25)| MIT麻省理工 · 机器学习导论课程『Introduction to Machine Learning』

热门文章

  1. js中加载指定的html代码,在js或JQuery中怎样判断页面html代码中含有指定名称的div元素...
  2. java中的多线程有什么意义_Java多线程与并发面试题(小结)
  3. python拨号_python 拨号代码(win10 系统亲测有效)
  4. 未捕获typeerror: $形象。cropper不是函数_没有学不会的python--细说自定义函数的细节...
  5. java 自动装拆箱
  6. oracle中pga指什么,oracle学习SGA跟PGA理解
  7. linux 多个秘钥,linux管理多个ssh公钥密钥
  8. red hat linux 远程,Red Hat Linux 远程桌面 – 如何设置
  9. Bzoj 2127 happiness 最小割
  10. Python 37 进程池与线程池 、 协程