[leetcode] 推多米诺 双指针

2023-11-18

题目链接
在这里插入图片描述

一开始想多了,像成了真实生活中的那种会叠加的状态,就比如"RRL"中,左边的两个"R"会让第三个"L"向右边倾斜,直接用前缀和进行操作,但是发现示例1都无法通过,所以说是错的

正确的想法是,每一个暂未确定状态的’.‘都由这个字符两侧最相近的字符确定
“R…R” 一定是 “RRRRRRRR”,"L…L"同理
而对于:
“L…R"一定是"L…R”
而对于:
"R…L"会变成"RRR(.)LLL"两侧往中间挤的情况下,要记得中间的长度是奇数还是偶数进行确定是否有’.’

Code:

class Solution {
public:
    string pushDominoes(string dominoes) {
        string ans = "";
        dominoes = "L" + dominoes + "R";// for the case of "......"
        int left = 0;
        for(int r=1;r<dominoes.length();r++) {
            if(dominoes[r] == '.') continue;
            if(left != 0) ans.push_back(dominoes[left]);
            int len = r - left - 1;
            if(dominoes[left] == dominoes[r]) {
                ans += string(len, dominoes[r]);
            }else if(dominoes[left] == 'L' && dominoes[r] == 'R') {
                ans += string(len, '.');
            }else{
                ans += string(len >> 1,'R');
                if(len&1) ans.push_back('.');
                ans += string(len >> 1,'L');
            }
            left = r;
        }
        return ans;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[leetcode] 推多米诺 双指针 的相关文章

  • 信号处理——梅尔滤波器(MFCC)

    信号处理 梅尔滤波器 MFCC 一 概述 在语音识别 Speech Recognition 和话者识别 Speaker Recognition 方面 最常用到的语音特征就是梅尔倒谱系数 Mel scale FrequencyCepstral

随机推荐

  • NoSQL系统的分类

    什么是NoSQL系统 采用最终一致性的数据库系统 统称为NoSQL Not only SQL 系统 根据数据模型的不同 NoSQL系统又分为以下几类 基于键值对的 Memcached Redis 基于列存储的 Bigtable Apache
  • 小米路由器3/3G/4通过串口(ttl)刷机

    准备工作 淘宝购买 USB转TTL CH340模块 杜邦线 排针 https detail tmall com item htm id 525204252260 spm a1z09 2 0 0 19dc2e8doubZVx u blagqs
  • 查看linux下安装了哪些软件

    1 查看是否安装了gcc 命令 rpm ql gcc rpm qa grep gcc 参数 q 询问 a 查询全部 l 显示列表 2 权限 安装和删除只有root和有安装权限的用户才可以进行 查询是每个用户都可以进行操作的 RPM 的介绍和
  • 《Docker 镜像操作》

    Docker 镜像原理 1 Docker 镜像本质是什么 是一个分层文件系统 2 Docker 中一个 centos 镜像为什么只有 200MB 而一个 centos 操作系统的 iso 文件要几个个 G Centos 的 iso 镜像文件
  • IDEA插件-PlantUML

    一 idea安装plantUml插件 在idea中Preferences gt plugins gt Browse repositories gt 搜索 plantUML gt 安装即可 二 通过 brew 安装 Graphviz 安装pl
  • [极客大挑战 2019]RCE ME(取反、异或绕过正则表达式、bypass disable_function)

    题目进去后 很简单的代码 显然命令执行 看到了eval 应该是用system等函数来实现命令执行 但是得要先绕过preg match 中正则表达式的限制 一开始傻乎乎的直接传了个数组 妄图绕过preg match 这很显然是不行的 附上大佬
  • c语言 push,深入了解C语言(局部变量的定义)

    深入了解C语言 这一节我们主要来研究一下C语言如何使用函数中的局部变量的 C语言中对于全局变量和局部变量所分配的空间地址是不一样的 全局变量是放在 DATA段 也就是除开 TEXT代码段的另一块集中的内存空间 而局部变量主要是使用堆栈的内存
  • Java 9:装B之前你必须要会的——泛型,注解,反射

    1 泛型 1 1 基本概念 泛型提供了编译期的类型检查 但问题远非这么简单 原生态类型 List list1 new ArrayList 规避的类型检查 List list1 new ArrayList
  • 【mcuclub】PH酸碱度检测传感器-PH4502C

    一 实物图 型号 PH4502C 二 原理图 编号 名称 功能 1 VCC 供电电压正极 5V 2 GND 供电电压负极 3 GND 模拟信号输出负极 4 PO 模拟信号输出正极 5 2V5 基准电压2 5V输出口 6 T1 温度传感器DS
  • 在 vscode 上刷力扣 Leetcode 可以这样来

    背景 神奇的算法网站 LeetCode 值得驻留 网页版似乎不太方便 作为习惯于在编译器上敲代码的你 如何 vscode 上优雅的刷力扣 Leetcode 在本地配置 记录下来方便备查 环境前置 电脑具备 NodeJs环境 第一步 安装插件
  • 模型优化-RMSprop

    RMSprop 全称 root mean square prop 算法 和动量方法一样都可以加快梯度下降速度 关于动量方法的内容可以参考这篇博文模型优化 动量方法 动量方法借助前一时刻的动量 从而能够有效地缓解山谷震荡以及鞍部停滞问题 而
  • linux云主机如何运维建站最简单-办法来了

    对于企业和个人站长来说 云服务器运维管理是一件比较棘手的问题 如果企业没有专业的运维工程师 那么就会使用一些工具来帮助运维 毕竟通过shh命令操作linux服务器的还是少数 那么运维服务器这件事就要用到一个工具linux面板 每个人对于云服
  • EXCEL VBA从入门到精通 第一章:VBA入门

    第一章 VBA入门 第一节 什么是VBA 介绍VBA的定义 作用和优点 VBA Visual Basic for Applications 是一种编程语言 是微软Office套件中的一个重要组成部分 主要用于自动化处理Office中的各种操
  • Xilinx平台SRIO介绍(二)SRIO IP核基础知识

    使用SRIO IP核必须掌握的基础知识 理解了这篇 剩下的只是代码罢了 汇总篇 Xilinx平台SRIO介绍 汇总篇 目录 前言 SRIO RapidIO GT 有什么关系
  • 基于python进行小波分析,频率谱分析

    该方法基于python进行时间序列的小波分析并出图 包括功率谱图和小波分解后的图 默认的小波为morlet小波 该代码由 Evgeniya Predybaylo 博士提供 https github com chris torrence wa
  • RecyclerView嵌套RecyclerView的滑动问题如何解

    一 概述 虽然今天我们要说的是Rv嵌套Rv的问题 但多数情况下我们都不会使用Rv嵌套Rv 来实现复杂的列表 而是使用多ItemType实现 可能再复杂点的 配合GridLayoutManager SpanSizeLookup一起来实现 再高
  • C/C++ 指针详解

    指针详解 参考视频 https www bilibili com video BV1bo4y1Z7xf 感谢Bilibili fengmuzi2003的搬运翻译及后续勘误 也感谢已故原作者Harsha Suryanarayana的讲解 RI
  • 【前端技术】Vue在打包之后出现Css样式冲突,解决方法。

    原文链接 先说问题 1 在做vue项目打包时出现Css样式冲突的问题 在本地运行项目时样式都是正常 但在服务器进行打包之后项目的整体样式就有问题了 举例说明 1 图片大小发生变化 怎么改也改不好 2 在查看F12中会多出当前页面没有设置过的
  • 关闭HttpClient控制台输出语句

    关闭HttpClient控制台输出语句 HttpClient相信大家都不陌生 在Java中经常用来在后台进行一些请求访问或者接口调用 当然这里不是介绍HttpClient使用的 关于HttpClient使用方面的文章 大家可以去百度或者Go
  • [leetcode] 推多米诺 双指针

    题目链接 一开始想多了 像成了真实生活中的那种会叠加的状态 就比如 RRL 中 左边的两个 R 会让第三个 L 向右边倾斜 直接用前缀和进行操作 但是发现示例1都无法通过 所以说是错的 正确的想法是 每一个暂未确定状态的 都由这个字符两侧最