1. 题目

在一个由 ‘L’ , ‘R’ 和 ‘X’ 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作。一次移动操作指用一个"LX"替换一个"XL",或者用一个"XR"替换一个"RX"。现给定起始字符串start和结束字符串end,请编写代码,当且仅当存在一系列移动操作使得start可以转换成end时, 返回True。

示例 :
输入: start = "RXXLRXRXL", end = "XRLXXRRLX"
输出: True
解释:
我们可以通过以下几步将start转换成end:
RXXLRXRXL ->
XRXLRXRXL ->
XRLXRXRXL ->
XRLXXRRXL ->
XRLXXRRLX
注意:
1 <= len(start) = len(end) <= 10000。
start和end中的字符串仅限于'L', 'R'和'X'。

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

2. 解题

  • 题目意思就是:L只能向左移动,R只能向右移动
  • LR不能改变左右相对位置
  • start中 L的下标 XL,R的下标 XR
  • end中的L下标应小于等于 XL, end中的 R下标都应大于等于 XR
class Solution {public:bool canTransform(string start, string end) {int i = 0, j = 0, n = start.size();while (i < n && j < n){while(i < n && start[i]=='X')i++;while(j < n && end[j]=='X')j++;if(start[i] != end[j])return false;if(start[i] == 'L' && i < j)//L左移后,j 应该 <= ireturn false;if(start[i] == 'R' && i > j)//R右移后,j 应该 >= ireturn false;i++;j++;}return true;}
};

LeetCode 777. 在LR字符串中交换相邻字符(双指针)相关推荐

  1. Java实现 LeetCode 777 在LR字符串中交换相邻字符(分析题)

    777. 在LR字符串中交换相邻字符 在一个由 'L' , 'R' 和 'X' 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作.一次移动操作指用一个"L ...

  2. 777. 在LR字符串中交换相邻字符

    777. 在LR字符串中交换相邻字符 在一个由 'L' , 'R' 和 'X' 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作.一次移动操作指用一个"L ...

  3. 力扣 777. 在LR字符串中交换相邻字符

    题目来源:https://leetcode.cn/problems/swap-adjacent-in-lr-string/ 大致题意: 给两个由 L.R.X 组成的字符串 start 和 end,其中 ...

  4. leetcode 777. Swap Adjacent in LR String | 777. 在LR字符串中交换相邻字符(双指针)

    题目 https://leetcode.com/problems/swap-adjacent-in-lr-string/ 题解 本来以为是个带 visited 集合的 DFS,一看数据量,居然是 10 ...

  5. LeetCode 1910. 删除一个字符串中所有出现的给定子字符串

    文章目录 1. 题目 2. 解题 1. 题目 给你两个字符串 s 和 part ,请你对 s 反复执行以下操作直到 所有 子字符串 part 都被删除: 找到 s 中 最左边 的子字符串 part , ...

  6. php 替换某个字符,php中如何替换字符串中的某个字符-PHP问题

    正在PHP中,能够应用strtr()函数完成字符串交换. 起首咱们简略理解下strtr()函数的界说及语法. 语法: string strtr( string $str, string $from, ...

  7. 把一个字符串中的所有字符按从小到大排序。

    7-4 把一个字符串中的所有字符按从小到大排序 输入格式: 在一行中输入长度小于20的字符串.在字符串中不要出现换行符,制表符. 输出格式: 直接输出排序后的字符串. 输入样例: asdfg 输出样例 ...

  8. python中替换字符串中字符_python替换字符串中的某个字符

    python_split_strip_replace使用方法 使用python时会经常要对字符串做一些处理,比如:分割字符串.去掉空格.替换字符串 中的某个字符等,下面介绍下这几个功能的使用. 一.  ...

  9. python删除指定位置的字符串_python去除区域 python删除字符串中指定位置字符

    python删除字符串中指定位置字符 原程序是这样的: ser = serial.Serial("/dev/ttyAMA0", 9600) def main字符串的话,你可以把他当 ...

最新文章

  1. 人脸识别落地开花 相关标准不可或缺
  2. 告别繁琐提升效率,Docker 帮您降低从开发到部署的复杂性
  3. Python中get()函数用法【详解】——Python系列学习笔记
  4. Win32API不规则窗口制作
  5. 60 MM配置-后勤发票校验-设置重复发票检查
  6. global http proxy configuration on ubuntu
  7. 什么是Java线程池
  8. HTML列表、表格、表单、超链接、音视频标签、内嵌
  9. grads 读取shp
  10. 微信h5开发网页授权-本地如何开发调试?
  11. 时间序列(数据分析)
  12. 华为手机便签怎样一键扫描图片转化成文字?
  13. 入门学习必收藏!精选Photoshop、D…
  14. 前端吃香还是后端吃香?
  15. caffe 人脸识别
  16. 云手机互联网点评系列-华为云手机云服务cloud+初评
  17. pop php,什么是POP
  18. java面向对象:三大特性:封装,继承,多态
  19. SAP中利用价格条件有效期条件重叠实现修改价格条件单位的需求实例分析测试
  20. 什么是多天线MIMO?

热门文章

  1. vue如何获取年月日_好程序员web前端教程分享Vue相关面试题
  2. [转]命令行在IIS添加虚拟目录
  3. [整理]详记被忽略的Get与Post
  4. android中给TextView或者Button的文字添加阴影效果
  5. Windows注册表操作基础代码
  6. SQL Server中常用全局变量介绍
  7. 从网上看到的很搞笑的东西
  8. MySQL源码解读之数据结构-LF_DYNARRAY
  9. Linux内核工程师是怎么步入内核殿堂的?
  10. Linux进程调度器-基础