777. 在LR字符串中交换相邻字符
777. 在LR字符串中交换相邻字符
在一个由 ‘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
解题代码如下:
void swap(char *s,int i1,int i2){char p=s[i1];s[i1]=s[i2];s[i2]=p;
}int find_R(char *s){int i=0;while(s[i]!='\0'){if(s[i]=='X'){i++;}if(s[i]!='X'){if(s[i]=='R'){return i;}return -1;}}return -1;
}int find_X(char *s){int i=0;while(s[i]!='\0'){if(s[i]=='L'){i++;}if(s[i]!='L'){if(s[i]=='X'){return i;}return -1;}}return -1;
}bool canTransform(char * start, char * end){int s=0,e=0,i=0;int sx=0;while(start[s]!='\0'){// printf("--%s %s ",start,end);if(start[s]=='R'){if(end[e]=='R'){s++;e++;}else{if(end[e]!='X'){return false;}int i=find_R(end+e+1);if(i==-1)return false;swap(end,e,e+i+1);}}if(start[s]=='X'){if(end[s]=='X'){s++;e++;}else{if(end[e]!='L'){return false;}int i=find_X(end+e+1);if(i==-1)return false;swap(end,e,e+i+1);}}if(start[s]=='L'){if(end[e]=='L'){e++;s++;}else{return false;}}}printf("%s %s",start,end);return true;;
}
777. 在LR字符串中交换相邻字符相关推荐
- Java实现 LeetCode 777 在LR字符串中交换相邻字符(分析题)
777. 在LR字符串中交换相邻字符 在一个由 'L' , 'R' 和 'X' 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作.一次移动操作指用一个"L ...
- 力扣 777. 在LR字符串中交换相邻字符
题目来源:https://leetcode.cn/problems/swap-adjacent-in-lr-string/ 大致题意: 给两个由 L.R.X 组成的字符串 start 和 end,其中 ...
- LeetCode 777. 在LR字符串中交换相邻字符(双指针)
1. 题目 在一个由 'L' , 'R' 和 'X' 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作.一次移动操作指用一个"LX"替换一个&q ...
- leetcode 777. Swap Adjacent in LR String | 777. 在LR字符串中交换相邻字符(双指针)
题目 https://leetcode.com/problems/swap-adjacent-in-lr-string/ 题解 本来以为是个带 visited 集合的 DFS,一看数据量,居然是 10 ...
- php 替换某个字符,php中如何替换字符串中的某个字符-PHP问题
正在PHP中,能够应用strtr()函数完成字符串交换. 起首咱们简略理解下strtr()函数的界说及语法. 语法: string strtr( string $str, string $from, ...
- 把一个字符串中的所有字符按从小到大排序。
7-4 把一个字符串中的所有字符按从小到大排序 输入格式: 在一行中输入长度小于20的字符串.在字符串中不要出现换行符,制表符. 输出格式: 直接输出排序后的字符串. 输入样例: asdfg 输出样例 ...
- python中替换字符串中字符_python替换字符串中的某个字符
python_split_strip_replace使用方法 使用python时会经常要对字符串做一些处理,比如:分割字符串.去掉空格.替换字符串 中的某个字符等,下面介绍下这几个功能的使用. 一. ...
- python删除指定位置的字符串_python去除区域 python删除字符串中指定位置字符
python删除字符串中指定位置字符 原程序是这样的: ser = serial.Serial("/dev/ttyAMA0", 9600) def main字符串的话,你可以把他当 ...
- python使用正则表达式删除字符串中的其它字符只保留数字和字母
python使用正则表达式删除字符串中的其它字符只保留数字和字母 #python使用正则表达式删除字符串中的其它字符只保留数字和字母 # Python code to demonstrate # to ...
最新文章
- wireshark 如何修改抓包时间日期显示格式?
- 地理信息系统(GIS)
- Python实现二叉树的非递归先序遍历
- mysql keepalived双主双活_mysql高可用架构方案之中的一个(keepalived+主主双活)
- vlookup match_INDEX-MATCH — VLOOKUP功能的升级
- Linux下使用od查看文件
- 鸿蒙构架谁提供的,科普丨关于“鸿蒙”,不知道这些你都不好意思跟别人打招呼!...
- 带你看论文丨全局信息对于图网络文档解析的影响
- 【转】onAttachedToWindow()在整个Activity生命周期的位置及使用
- Java循环结构语句
- SPEI干旱指数和ETo潜在蒸散量计算在python上的实现
- Java基础案例教程_Java基础案例教程答案
- 会计专业计算机技能大赛,会计技能大赛策划
- windows10下安装Vue.js的方法
- Java 算法:带权图Weighted Graph
- PIPI1091 编程课奖励(滚动数组+dp)
- 解决$ is not defined 的几种方法
- span标签的使用场景
- 格局决定结局,九种职场高效思维你都有吗
- Leetcode1091_二进制矩阵中的最短路径(Java+BFS解法)
热门文章
- C语言简单直观打印二叉树
- Oracle 错误总结及问题解决 ORA
- 一句平静而感人的英文电影对白
- springboot+uniapp实现简单注册登录
- 【ThreeJs】(2)照相机 | 正交投影照相机 | 透视投影照相机
- RFC2617- HTTP Authentication自译本-(3) (转)
- html转换pdf java_java转pdf(html转为pdf)
- 遇见狂神书说:JavaWeb保姆级教程
- 计算机编程背那个英语词汇,编程英语词汇
- Linux服务器/VPS 基本测试 包括硬盘速度/网络速度