2023-08-21 LeetCode每日一题(移动片段得到字符串)

news2024/11/23 16:51:45

2023-08-21每日一题

一、题目编号

2337. 移动片段得到字符串

二、题目链接

点击跳转到题目位置

三、题目描述

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

  • 字符 ‘L’ 和 ‘R’ 表示片段,其中片段 ‘L’ 只有在其左侧直接存在一个 空位 时才能向 移动,而片段 ‘R’ 只有在其右侧直接存在一个 空位 时才能向 右 移动。
  • 字符 ‘_’ 表示可以被 任意 ‘L’ 或 ‘R’ 片段占据的空位。

如果在移动字符串 start 中的片段任意次之后可以得到字符串 target ,返回 true ;否则,返回 false 。

示例 1:
在这里插入图片描述

示例 2:
在这里插入图片描述
示例 3:
在这里插入图片描述
提示:

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

四、解题代码

class Solution {
public:
    bool canChange(string start, string target) {
        int n = start.size();
        int i = 0;
        int j = 0;
        while(i < n && j < n){
            while(i < n && start[i] == '_'){
                ++i;
            }
            while(j < n && target[j] == '_'){
                ++j;
            }
            if(i < n && j < n){
                if(start[i] != target[j]){
                    return false;
                } 
                if(start[i] == 'L' && i < j){
                    return false;
                }
                if(start[i] == 'R' && i > j){
                    return false;
                }
                ++i;
                ++j;
            }
        }
        while(i < n){
            if(start[i] != '_'){
                return false;
            }
            ++i;
        }
        while(j < n){
            if(target[j] != '_'){
                return false;
            }
            ++j;
        }
    return true;
    }
};

五、解题思路

(1) 我们是将start转化成target的,所以target是不动的,将start转化成target。

(2) 如果转化要成功,必须确保start和target中的相应字符数目要相等。

(3) 我们跳过start和target中的‘_’字符,如果此时start和target中遍历到的字符不相同,那么代表不能转变,如果同为’L’,那么start中的下标必须大于等于target中的下标,不然不能移动。如果同为‘R’,那么start中的下标必须小于等于target中的下标,不然不能移动。

(4) 最后判断是否对应字符数目相等,因为有可能一个字符串已经遍历到最后了,另一个字符串还没有,这个时候继续遍历没有遍历完的字符串,如果还有其他的字符,则表示错误。

(5) 如果上述条件全部满足了,返回true即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/911478.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑运行缓慢?4个方法,加速电脑运行!

“我电脑才用了没多久哎&#xff01;怎么突然就变得运行很缓慢了呢&#xff1f;有什么方法可以加速电脑运行速度吗&#xff1f;真的很需要&#xff0c;看看我吧&#xff01;” 电脑的运行速度快会让用户在使用电脑时感觉愉悦&#xff0c;而电脑运行缓慢可能会影响我们的工作效率…

ASP.NET实验室信息管理系统源码 LIMS成品源码

实验室信息管理系统&#xff08;Laboratory Information Management System&#xff09;简称LIMS系统&#xff0c;是指通过计算机对实验室的各种信息进行管理的计算机软、硬件系统&#xff0c;并将实验室的设备各种信息通过计算机网络连接起来&#xff0c;采用科学的管理思想和…

Python爬取斗罗大陆全集

打开网址http://www.luoxu.cc/dmplay/C888H-1-265.html F12打开Fetch/XHR&#xff0c;看到m3u8&#xff0c;ts&#xff0c;一眼顶真&#xff0c;打开index.m3u8 由第一个包含第二个index.m3u8的地址&#xff0c;ctrlf在源代码中一查index&#xff0c;果然有&#xff0c;不过/…

Hadoop集群搭建(hadoop-3.3.5)

一、修改服务器配置文件 1、配置环境变量 vim /etc/profile #java环境变量 export JAVA_HOME/usr/local/jdk/jdk8 export JRE_HOME$JAVA_HOME/jre export CLASSPATH$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH$JAVA_HOME/bin:$JRE_HOME/bin:$PATH #hadoop环境变量 …

ssm实验中心管理系统的设计与实现

ssm实验中心管理系统的设计与实现040 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 研究目的与意义&#xff1a; 随着高校硬件水平的提高和教学改革的深入&#xff0c;实验教学所占的地位越来越重要&#x…

【PHP】PHP常见语法

文章目录 PHP简介前置知识了解静态网站的特点动态网站特点 PHP基础语法代码标记注释语句分隔(结束)符变量变量的基本概念变量的使用变量命名规则预定义变量可变变量变量传值内存分区 常量基本概念常量定义形式命名规则使用形式系统常量魔术常量 数据类型简单&#xff08;基本&a…

Qt应用开发(基础篇)——富文本浏览器 QTextBrowser

一、前言 QTextBrowser类继承于QTextEdit&#xff0c;是一个具有超文本导航的富文本浏览器。 框架类 QFramehttps://blog.csdn.net/u014491932/article/details/132188655 滚屏区域基类 QAbstractScrollAreahttps://blog.csdn.net/u014491932/article/details/132245486 文…

智慧化工地SaaS平台源码,PC端+APP端+智慧数据可视化大屏端,源码完全开源不封装,自主研发,支持二开,项目使用,微服务+Java++vue+mysql

智慧工地管理平台充分运用数字化技术&#xff0c;聚焦施工现场岗位一线&#xff0c;依托物联网、互联网、AI等技术&#xff0c;围绕施工现场管理的人、机、料、法、环五大维度&#xff0c;以及施工过程管理的进度、质量、安全三大体系为基础应用&#xff0c;实现全面高效的工程…

js使用for of遍历map

//使用for of遍历map console.log("---") console.log(odata.studentDetails) let obj odata.studentDetails[0].answerSituation for(let [key,value] of Object.entries(obj)){console.log(value) }

vscode远程调试

安装ssh 在vscode扩展插件搜索remote-ssh安装 如果连接失败&#xff0c;出现 Resolver error: Error: XHR failedscode 报错&#xff0c;可以看这篇帖子vscode ssh: Resolver error: Error: XHR failedscode错误_阿伟跑呀的博客-CSDN博客 添加好后点击左上角的加号&#xff0…

【HCIP】12.BGP基础

AS之间传递路由&#xff08;不产生路由&#xff0c;只传递路由&#xff09;BGP属于应用层&#xff0c;采用TLV价格。AS号&#xff0c;16bit与32bit。运行BGP的路由器成为BGP发言者&#xff0c;或者BGP路由器 概述 采用目的端口179&#xff0c;触发式更新能承载大量路由信息13…

美创科技荣获“2023年网络安全优秀创新成果大赛—杭州分站赛”两项优胜奖

近日&#xff0c;由浙江省互联网信息办公室指导、中国网络安全产业联盟&#xff08;CCIA&#xff09;主办&#xff0c;浙江省网络空间安全协会承办的“2023年网络安全优秀创新成果大赛-杭州分站赛”正式公布评选结果。 经专家评审&#xff0c;美创科技报名参赛的解决方案—“医…

万界星空科技/免费MES系统/免费质量检测系统

质量管理也是万界星空科技免费MES中的一个重要组成部分&#xff0c;旨在帮助制造企业实现全面的质量管理。该系统涵盖了供应商来料、生产过程、质量检验、数据分析等各个环节&#xff0c;为企业提供了一站式的质量管理解决方案。 1. 实时质量监控 质量管理能够实时监控生产过程…

【附安装包】Inventor2024安装教程 机械制图|三维制图

软件下载 软件&#xff1a;Inventor版本&#xff1a;2024语言&#xff1a;简体中文大小&#xff1a;5.61G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.5GHz 内存8G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pan.baidu…

15. Canvas制作汽车油耗仪表盘

1. 说明 本篇文章在14. 利用Canvas组件制作时钟的基础上进行一些更改&#xff0c;想查看全面的代码可以点击链接查看即可。 效果展示&#xff1a; 2. 整体代码 import QtQuick 2.15 import QtQuick.Controls 2.15Item{id:rootimplicitWidth: 400implicitHeight: implicitWi…

ASCII码-shellcode的技巧

网上已经有成熟的工具了&#xff0c;所以就简单记录一下工具怎么用吧 https://github.com/TaQini/alpha3 https://github.com/veritas501/ae64.git https://github.com/rcx/shellcode_encoder 结合题目来看吧&#xff0c;没有开启NX保护&#xff0c;基本这类型题目九成九都…

十年IT老炮都说不清的云计算,一文让你看懂

今天老陈想跟大家聊一聊云计算这个东西究竟是啥&#xff0c;为啥那么多企业都对云计算趋之若鹜、情有独钟&#xff0c;但是却没人知道云计算究竟能做什么&#xff1f; 一句话总结&#xff1a;云计算就是一个大号的虚拟旅行社。 最近老陈想要蹭个热度去淄博吃烧烤&#xff0c;…

【849. 到最近的人的最大距离】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个数组 seats 表示一排座位&#xff0c;其中 seats[i] 1 代表有人坐在第 i 个座位上&#xff0c;seats[i] 0 代表座位 i 上是空的&#xff08;下标从 0 开始&#xff09;。 至少有一个空座位…

3招教你释放储存空间:iPhone手机内存不足怎样清理最彻底

无论是什么手机&#xff0c;一旦使用时间长了&#xff0c;手机就会产生大量不必要的文件&#xff0c;从而导致手机内存不足&#xff0c;运行缓慢、卡顿。想要删除没用的文件该怎么做&#xff1f;iPhone手机内存不足怎样清理最彻底&#xff1f;今天就让小编来给大家分享一下&…

Apache BeanUtils工具介绍

beanutils&#xff0c;顾名思义&#xff0c;是java bean的一个工具类&#xff0c;可以帮助我们方便的读取(get)和设置(set)bean属性值、动态定义和访问bean属性&#xff1b;细心的话&#xff0c;会发现其实JDK已经提供了一个java.beans包&#xff0c;同样可以实现以上功能&…