• 日常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
     
     
    提示:
     
    1 <= len(start) = len(end) <= 10000。
    start和end中的字符串仅限于'L', 'R'和'X'。
     
    来源:力扣(LeetCode)
    链接:https://leetcode.cn/problems/swap-adjacent-in-lr-string
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    /**
     * @param {string} start
     * @param {string} end
     * @return {boolean}
     */
    var canTransform = function(start, end) {
        if(start.replace(/X/g,'')!==end.replace(/X/g,'')){
            return false
        }
        const n=start.length
        let i=0,j=0;
        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
            }
            //L左边的X少
            if(start[i]==='L'&&i<j){
                return false
            }
            //R左边的X少
            if(start[i]==='R'&&i>j){
                return false
            }
            i++
            j++
        }
        return true
    };
    /**
     * @param {string} start
     * @param {string} end
     * @return {boolean}
     */
    var canTransform = function(startend) {
        if(start.replace(/X/g,'')!==end.replace(/X/g,'')){
            return false
        }
        const n=start.length
        let i=0,j=0;
        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
            }
            //L左边的X少
            if(start[i]==='L'&&i<j){
                return false
            }
            //R左边的X少
            if(start[i]==='R'&&i>j){
                return false
            }
            i++
            j++
        }
        return true
    };
  • 相关阅读:
    maptalks 开发GIS地图(16)maptalks.three.09
    maptalks 开发GIS地图(15)maptalks.three.08
    maptalks 开发GIS地图(14)maptalks.three.07
    maptalks 开发GIS地图(12)maptalks.three.05 bar-music
    Use mongoose-CRUD operations
    First Mongoose Model
    MongoDB-1-CRUD Operations
    Mongo DB-0
    Kill port process
    Defining RESTful Routes(CRUD operations)
  • 原文地址:https://www.cnblogs.com/caoke/p/16748875.html
Copyright © 2020-2023  润新知