当前位置: 首页 > news >正文

【每日一题】2337. 移动片段得到字符串

【每日一题】2337. 移动片段得到字符串

  • 2337. 移动片段得到字符串
    • 题目描述
    • 解题思路

2337. 移动片段得到字符串

题目描述

给你两个字符串 start 和 target ,长度均为 n 。每个字符串 仅 由字符 ‘L’、‘R’ 和 ‘_’ 组成,其中:

字符 ‘L’ 和 ‘R’ 表示片段,其中片段 ‘L’ 只有在其左侧直接存在一个 空位 时才能向 左 移动,而片段 ‘R’ 只有在其右侧直接存在一个 空位 时才能向 右 移动。
字符 ‘_’ 表示可以被 任意 ‘L’ 或 ‘R’ 片段占据的空位。
如果在移动字符串 start 中的片段任意次之后可以得到字符串 target ,返回 true ;否则,返回 false 。

示例 1:

输入:start = "_L__R__R_", target = "L______RR"
输出:true
解释:可以从字符串 start 获得 target ,需要进行下面的移动:
- 将第一个片段向左移动一步,字符串现在变为 "L___R__R_" 。
- 将最后一个片段向右移动一步,字符串现在变为 "L___R___R" 。
- 将第二个片段向右移动三步,字符串现在变为 "L______RR" 。
可以从字符串 start 得到 target ,所以返回 true 。

示例 2:

输入:start = "R_L_", target = "__LR"
输出:false
解释:字符串 start 中的 'R' 片段可以向右移动一步得到 "_RL_" 。
但是,在这一步之后,不存在可以移动的片段,所以无法从字符串 start 得到 target 。

示例 3:

输入:start = "_R", target = "R_"
输出:false
解释:字符串 start 中的片段只能向右移动,所以无法从字符串 start 得到 target 。

提示:

n == start.length == target.length
1 <= n <= 105
start 和 target 由字符 ‘L’、‘R’ 和 ‘_’ 组成

解题思路

思路:最直观的思路是,条件一是start和target中的L和R的相对顺序是一致的,条件二是在相对顺序一致的情况下,L只能左移,R只能右移,那么该如何实现呢?对于条件一,分别将start和target中的_去掉,然后再判断是否相等,如果相等则满足条件一;对于条件二,分别枚举对应位置的L和R,如果L满足i>=j且R满足i<=j则满足条件二。

class Solution {
public:bool canChange(string start, string target) {// 条件一 start和target中L和R的相对顺序不变auto s=start,t=target;// remove(begin(),end(),c) 移除[b,e)区间内的c 并将c后移 // 字符串长度不变 前面为移除后的字符串 后面为原始字符串s.erase(remove(s.begin(),s.end(),'_'),s.end());// s.erase(begin(),end()) 移除[b,e)区间内字符串t.erase(remove(t.begin(),t.end(),'_'),t.end());// 条件一判断if(s!=t) return false;// 条件二 start中的L只能左移 R只能右移int n=start.length();// 可以使用双指针实现int i=0,j=0;while(i<n&&j<n){while(start[i]=='_')i++;while(target[j]=='_')j++;// 条件二判断if((start[i]=='L'&&i<j)||(start[i]=='R'&&i>j))return false;else{i++;j++;}}return true;}
};

总结:先有思路,再有实现。先库函数,再自己写。remove(begin(),end(),c) 移除[b,e)区间内的c并将c后移,字符串长度不变,前面为移除后的字符串,后面为原始字符串,比如原始字符串s为"_L__R__R_“,使用remove后得到"LRR_R__R_”。s.erase(begin(),end()) 移除[b,e)区间内字符串。

相关文章:

【每日一题】2337. 移动片段得到字符串

【每日一题】2337. 移动片段得到字符串 2337. 移动片段得到字符串题目描述解题思路 2337. 移动片段得到字符串 题目描述 给你两个字符串 start 和 target &#xff0c;长度均为 n 。每个字符串 仅 由字符 ‘L’、‘R’ 和 ‘_’ 组成&#xff0c;其中&#xff1a; 字符 ‘L’…...

MySQL 数据库常用命令大全(详细)

文章目录 1. MySQL命令2. MySQL基础命令3. MySQL命令简介4. MySQL常用命令4.1 MySQL准备篇4.1.1 启动和停止MySQL服务4.1.2 修改MySQL账户密码4.1.3 MySQL的登陆和退出4.1.4 查看MySQL版本 4.2 DDL篇&#xff08;数据定义&#xff09;4.2.1 查询数据库4.2.2 创建数据库4.2.3 使…...

中国移动加大布局长三角,打造算力产业新高地

8月27日&#xff0c;以“数实融合算启未来”为主题的2023长三角算力发展大会在苏州举办&#xff0c;大会启动了长三角算力调度枢纽&#xff0c;携手各界推动算力产业高质量发展。 会上&#xff0c;移动云作为第一批算力资源提供方&#xff0c;与苏州市公共算力服务平台签订算力…...

话费、加油卡、视频会员等充值接口如何对接?

现在很多商家企业等发现与用户保持粘性是越来越难了&#xff0c;大多数的用户活跃度都很差&#xff0c;到底该怎么做才能改善这种情况呢&#xff1f; 那么我们需要做的就是投其所好&#xff0c;在与用户保持粘性的app或者积分商城中投入大家感兴趣的物品或者虚拟产品&#xff…...

服务器重启MongoDB无法启动

文章目录 服务器重启MongoDB无法启动背景规划实施 总结 服务器重启MongoDB无法启动 背景 数据库服务器的CPU接近告警值了&#xff0c;需要添加CPU资源&#xff0c;于是乎就在恰当的时间对服务器进行关机&#xff0c;待添加完资源后开机&#xff0c;这样就完成了CPU资源的添加…...

深度刨析数据在内存中的存储

✨博客主页&#xff1a;小钱编程成长记 &#x1f388;博客专栏&#xff1a;进阶C语言 深度刨析数据在内存中的存储 1.数据类型介绍1.1 类型的基本归类 2.整形在内存中的存储2.1 原码、反码、补码2.2 大小端介绍 3.浮点型在内存中的存储3.1 一个例子3.2 浮点数的存储规则3.3指数…...

理解FPGA中的亚稳态

一、前言 大家应该经常能听说到亚稳态这个词&#xff0c;亚稳态主要是指触发器的输出在一段时间内不能达到一个确定的状态&#xff0c;过了这段时间触发器的输出随机选择输出0/1&#xff0c;这是我们在设计时需要避免的。本文主要讲述了FPGA中的亚稳态问题&#xff0c;可以帮助…...

Leetcode86. 分隔链表

给你一个链表的头节点 head 和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台…...

如何处理 Flink 作业中的数据倾斜问题?

分析&回答 什么是数据倾斜&#xff1f; 由于数据分布不均匀&#xff0c;造成数据大量的集中到一点&#xff0c;造成数据热点。 举例&#xff1a;一个 Flink 作业包含 200 个 Task 节点&#xff0c;其中有 199 个节点可以在很短的时间内完成计算。但是有一个节点执行时间…...

cobbler自动化安装CentOS、windows和ubuntu

环境介绍 同时玩cobbler3.3和cobbler2.8.5 cobbler3.3 系统CentOS8.3 VMware虚拟机 桥接到物理网络 IP: 192.168.1.33 cobbler2.8.5 系统CentOS7.9 VMWare虚拟机 桥接到物理网络 IP&#xff1a;192.168.1.33 安装cobbler3.3 yum源修改 cat /etc/yum.repo.d/Cento…...

springcloud3 GateWay章节-Nacos+gateway动态路由负载均衡4

一 工程结构 1.1 工程 1.2 搭建gatewayapi工程 1.pom文件 <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13</version><scope>test</scope></dependency><!--gateway--&g…...

RESTful API 面试必问

RESTful API是一种基于 HTTP 协议的 API 设计风格&#xff0c;它提供了一组规范和约束&#xff0c;使得客户端&#xff08;如 Web 应用程序、移动应用等&#xff09;和服务端之间的通信更加清晰、简洁和易于理解。 RESTful API 的设计原则 使用 HTTP 协议&#xff1a;RESTful …...

软件机器人助力行政审批局优化网约车业务流程,推动审批业务数字化转型

随着社会的进步和发展&#xff0c;行政审批业务逐渐趋向于智能化和自动化。近日&#xff0c;某市行政审批局在市场准入窗口引入博为小帮软件机器人大幅度提升了网约车办理业务的效率&#xff0c;创新了原有的业务模式。 软件机器人以其自动化、智能化的特性&#xff0c;优化了网…...

飞天使-python的字符串转义字符元组字典等

文章目录 基础语法数据类型python的字符串运算符输入和输出 数据结构列表与元组字典与集合 参考文档 基础语法 数据类型 数值型 &#xff0c;整数 浮点型 布尔型&#xff0c; 真假&#xff0c; 假范围 字符型 类型转换python的字符串 了解转义字符一些基本的运算 \ 比如一行…...

stm32 uart dma方式接收不定长度字符

一般处理&#xff1a; stm32 uart使用dma接收时&#xff0c;会有自己的数据流中断&#xff0c;数据流中断会调用HAL_UART_RxCpltCallback。但是数据流中断只会在HAL_UART_Receive_DMA函数指定的buffer满时才会触发。 接收不定长度字符&#xff0c;需要和uart的UART_IT_IDLE结…...

SciencePub学术 | Elsevier出版社SCIEEI征稿中

SciencePub学术刊源推荐:Elsevier出版社SCIE&EI征稿中&#xff01;信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 计算机科学类SCI-01 【期刊简介】6.5-7.0&#xff0c;JCR1区&#xff0c;中科院2区&#xff1b; 【检索情况】正刊&#xff0c;SC…...

PHP小白搭建Kafka环境以及初步使用rdkafka

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装java&#xff08;Kafka必须安装java&#xff0c;因为kafka依赖java核心&#xff09;二、安装以及配置Kafka、zookeeper1.下载Kafka&#xff08;无需下载…...

【Java Web】敏感词过滤

一、前缀树 假设有敏感词&#xff1a;b&#xff0c;abc&#xff0c;abd&#xff0c;bcd&#xff0c;abcd&#xff0c;efg&#xff0c;hii 那么前缀树可以构造为&#xff1a; 二、敏感词过滤器 package com.nowcoder.community.util;import org.apache.commons.lang3.CharUt…...

stable diffusion实践操作-提示词

本文专门开一节写提示词相关的内容&#xff0c;在看之前&#xff0c;可以同步关注&#xff1a; stable diffusion实践操作 正文 提示词是SD中非常重要&#xff0c;你生成的图片质量&#xff0c;基本就取决于提示词的好坏&#xff0c;提示词分为正向提示词和反向提示词。 模板…...

leetcode8.字符串转整数-Java

题目 请你来实现一个 myAtoi(string s) 函数&#xff0c;使其能将字符串转换成一个 32 位有符号整数&#xff08;类似 C/C 中的 atoi 函数&#xff09;。 函数 myAtoi(string s) 的算法如下&#xff1a; 读入字符串并丢弃无用的前导空格 检查下一个字符&#xff08;假设还未到字…...

RK Android14 开机自启APP分析与使用

文章目录 前言 一、功能补丁 二、如何使用 1. 应用补丁 2. 设置自启动应用 3. 获取应用包名和Activity 4. 验证 总结 前言 根据客户需要,有时需要设置第三方的apk进行开机自启动。 一、功能补丁 功能分析: 系统启动完成后,自动启动系统属性 persist.sys.start.app 中配置的…...

基于YOLOv8深度学习的电梯内电动车检测系统(YOLOv8+YOLO数据集+UI界面+Python项目源码+模型)

一、项目介绍 项目摘要 随着城市化进程的加速&#xff0c;电梯已成为现代建筑中不可或缺的垂直交通工具。然而&#xff0c;电动车进入电梯并违规充电引发的火灾事故频发&#xff0c;对人民生命财产安全构成严重威胁。为解决这一问题&#xff0c;本系统基于YOLOv8深度学习算法…...

Android开发者的USB摄像头避坑指南:从设备枚举到SurfaceView预览的完整流程

Android开发者实战&#xff1a;USB摄像头集成全流程与疑难解析 去年接手一个医疗设备项目时&#xff0c;我需要在Android平板上接入工业级USB摄像头。本以为三天能搞定&#xff0c;结果光是解决画面拉伸问题就耗了一周。这份踩坑经验总结&#xff0c;将带你系统掌握从设备枚举到…...

ThinkLink+EdgeBus 将建大仁科的氧传感器接入到LoRaWAN系统

传统 RS485 传感器&#xff0c;也能快速接入 LoRaWAN 系统很多项目现场&#xff0c;其实已经部署了不少成熟可用的传感器。 问题往往不在于“传感器能不能测”&#xff0c;而在于&#xff1a;怎样把这些传统传感器&#xff0c;快速接入 LoRaWAN 和上层业务系统&#xff1f;以 R…...

阶跃星辰新版模型上线,Token 消耗最高降 56%

4 月 2 日消息&#xff0c;阶跃星辰新版模型 Step 3.5 Flash 2603 正式上线并向 Step Plan 用户开放。该模型优化升级&#xff0c;带来核心改进&#xff0c;Token 消耗最高降 56%。新版模型正式上线阶跃星辰宣布新版模型 Step 3.5 Flash 2603 上线&#xff0c;向所有 Step Plan…...

深入SimpleFOC源码:为什么校准编码器时要将磁场固定在270度?一个硬件角度的解读

深入SimpleFOC源码&#xff1a;为什么校准编码器时要将磁场固定在270度&#xff1f;一个硬件角度的解读 当你第一次接触SimpleFOC库的编码器校准代码时&#xff0c;可能会对其中将电角度锁定在270度&#xff08;_3PI_2&#xff09;的操作感到困惑。这个看似随意的"魔法数字…...

低空经济落地第一站:工业无人机巡检的格局重构、技术革命与黄金增长期

在海拔4500米的青藏高原特高压输电线路上&#xff0c;一架全自主工业无人机沿着预设航线平稳飞行&#xff0c;以厘米级精度悬停在绝缘子旁&#xff0c;红外热成像镜头精准捕捉到导线的微小发热点&#xff0c;端侧AI大模型实时完成缺陷识别与风险分级&#xff0c;数据同步回传至…...

2024年实测:火狐浏览器上这3款广告过滤插件,谁才是真正的网页加速器?

2024年火狐浏览器广告过滤插件终极对决&#xff1a;谁才是网页加速王者&#xff1f; 在数字时代&#xff0c;网页浏览速度直接影响着我们的工作效率和上网体验。对于火狐浏览器用户来说&#xff0c;选择一款高效的广告过滤插件不仅能屏蔽恼人的广告&#xff0c;更能显著提升页面…...

博士论文的“破茧”时刻:好写作AI如何陪你走完最后一公里

一个论文科普博主眼中的“学术极限运动辅助器” 亲爱的博士生朋友们&#xff0c;今天我们聊点“不轻松”的话题。 当你的同学在朋友圈晒工作、晒娃、晒旅游时&#xff0c;你在晒什么&#xff1f;晒图书馆的凌晨三点&#xff0c;晒被导师批注得“血肉模糊”的草稿&#xff0c;晒…...

CVPR 2024人脸黑科技:3D头像重建如何用单张自拍搞定?附开源项目推荐

CVPR 2024单图3D头像重建技术实战&#xff1a;从算法原理到开源工具落地 当你在社交媒体上传自拍时&#xff0c;是否想过这张平面照片能瞬间转化为可360度旋转的数字化身&#xff1f;CVPR 2024最新研究成果正在让这个想象成为现实——无需专业设备&#xff0c;仅用普通手机拍摄…...