ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

脑筋急转弯-6114. 移动片段得到字符串

2022-07-10 17:02:33  阅读:152  来源: 互联网

标签:片段 ch 急转弯 6114 start 字符串 移动 target


问题描述

给你两个字符串 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' 和 '_' 组成

问题求解

由于LR无法互相穿透,因此将_去除后应该是一一对应的,并且L只能向左移动,R只能向右移动,利用这个性质进行判断即可。

class Solution:
    def canChange(self, start: str, target: str) -> bool:
        start = [[ch, idx] for idx, ch in enumerate(start) if ch != "_"]
        target = [[ch, idx] for idx , ch in enumerate(target) if ch != "_"]
        if len(start) != len(target): return False
        for i in range(len(start)):
            if start[i][0] != target[i][0]: return False
            if start[i][0] == "L" and start[i][1] < target[i][1]: return False
            if start[i][0] == "R" and start[i][1] > target[i][1]: return False
        return True

标签:片段,ch,急转弯,6114,start,字符串,移动,target
来源: https://www.cnblogs.com/hyserendipity/p/16463456.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有