首页 > 其他分享 >日常-777. 在LR字符串中交换相邻字符

日常-777. 在LR字符串中交换相邻字符

时间:2022-10-02 15:57:12浏览次数:55  
标签:777 end string param start LR 字符串 return false

这题完全是找规律,没学到啥 在一个由 '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(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 };

标签:777,end,string,param,start,LR,字符串,return,false
From: https://www.cnblogs.com/caoke/p/16748875.html

相关文章