题目

https://leetcode.com/problems/swap-adjacent-in-lr-string/

题解

本来以为是个带 visited 集合的 DFS,一看数据量,居然是 10^4。

然后看了下 hint,Think of the L and R's as people on a horizontal line, where X is a space. The people can't cross each other, and also you can't go from XRX to RXX.,一想,有点像状态机嘛。

详见草稿:

class Solution {public boolean canTransform(String start, String end) {int i = 0;int j = 0;while (true) {while (i < start.length() && start.charAt(i) == 'X') i++;while (j < end.length() && end.charAt(j) == 'X') j++;if (i == start.length() && j == end.length()) return true;if (i == start.length() || j == end.length()) return false;if (i < start.length() && j < end.length() && start.charAt(i) == end.charAt(j)) { // 两字母相同if (start.charAt(i) == 'L') { // 均为Lif (i < j) return false;} else { // 均为Rif (j < i) return false;}i++;j++;} else { // 两字母不同return false;}}}
}

leetcode 777. Swap Adjacent in LR String | 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. 在LR字符串中交换相邻字符(双指针)

    1. 题目 在一个由 'L' , 'R' 和 'X' 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作.一次移动操作指用一个"LX"替换一个&q ...

  5. ios 部分string颜色_ios 设置字符串中某段字符的颜色

    1.提取URL NSMutableAttributedString*strMutable=[[NSMutableAttributedString alloc]initWithString:str]; ...

  6. java string 连续字符_Java中字符串中连续相同字符去重方法

    导读 正文 最近参加了一个面试,问到了如何在一个字符串中连续相同字符去重,想了想用正则表达式应该可以轻松实现.可是由于长时间没有编码了,而且由于原先的工作用到的比较少.具体的自己就不会写正则表达式用到 ...

  7. 【PAT甲级 删除字符串中的指定字符】1050 String Subtraction (20 分) C++

    题目 删除字符串中的另一个字符串包含的所有字符. 可以通过判断两个字符串是否为空,来稍微优化一下运行速度 题解C++ #include<iostream> #include<stri ...

  8. [CareerCup] 1.1 Unique Characters of a String 字符串中不同的字符

    1.1 Implement an algorithm to determine if a string has all unique characters. What if you cannot us ...

  9. c++string替换指定位置字符_Excel数据分析:如何替换字符串中的指定字符?

    数据分析预处理中,经常遇到这样的问题:现有字符串中,如何替换指定的部分字符,例如有大量电话号码,现需要将这些号码最后四位替换为****,该如何做呢? 类似的问题和使用场景有很多,如果你的行记录有几千几 ...

最新文章

  1. LeetCode:Spiral Matrix I II
  2. 前端那么多框架,我们到底学哪一个
  3. Oracle的时区问题
  4. dj电商-模型类设计-1.x-订单模块表
  5. Silverlight 4 RC发布和详细更新
  6. SegNet论文笔记
  7. 计算机无法添加本地策略组,解决win10找不到本地组策略和本地用户的方法
  8. JDBC中connection.isClosed 和 connection.isValid的区别
  9. 手机怎样和宽带连接无线路由器设置路由器连接服务器,手机设置路由器步骤_用手机怎么设置路由器?-192路由网...
  10. 迭代局部搜索算法(Iterated local search)
  11. 【C++ 程序】 复数类 (Complex)
  12. PAT_乙级_1004_筱筱
  13. 迷你音乐播放器v1.0正式上线!
  14. php代码自动生成文档-phpDocumentor
  15. ios12升级, App应用崩溃闪退
  16. 为内部业务系统(LOB)使用Exchange Online发送匿名邮件
  17. Android挂逼修炼之行---微信摇骰子和猜拳作弊器原理解析
  18. Linux企业化运维--(7)redis服务之redis配置及主从复制、主从自动切换、集群、redis+mysql、gearman实现数据同步
  19. Java SE基础知识详解第[13]期—不可变集合、Stream流、异常
  20. Qt串口多线程:QObject: Cannot create children for a parent that is in a different thread.

热门文章

  1. CodeForces - 1303D Fill The Bag(贪心+模拟)
  2. PAT (Basic Level) 1050 螺旋矩阵(模拟)
  3. POJ - 2689 Prime Distance(素数区间筛模板)
  4. HDOJ1536 S-nim
  5. python3之协程(1)---协程简介
  6. 1.6 网络编程之 UDP通信
  7. 【白话科普】10s 从零看懂 H5
  8. IP地址分类及CIDR划分方法
  9. Linux 写时复制机制原理
  10. 快手直播平台演进之路