国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

LeetCode競賽題目—在LR字符串中交換相鄰字符

這篇具有很好參考價(jià)值的文章主要介紹了LeetCode競賽題目—在LR字符串中交換相鄰字符。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

leetcode相鄰字符取反,每日一道LeetCode,java,leetcode,算法,競賽,開發(fā)語言

作者:渴望力量的土狗

博客主頁:渴望力量的土狗的博客主頁

專欄:每日一道LeetCode

工欲善其事必先利其器,給大家介紹一款超牛的斬獲大廠offer利器——牛客網(wǎng)

點(diǎn)擊免費(fèi)注冊和我一起刷題吧

目錄

題目描述:在LR字符串中交換相鄰字符

解答思路:雙指針法

分析:

Java解題代碼:??


題目描述:在LR字符串中交換相鄰字符

在一個(gè)由 'L' , 'R' 和 'X' 三個(gè)字符組成的字符串(例如"RXXLRXRXL")中進(jìn)行移動操作。一次移動A操作指用一個(gè)"LX"替換一個(gè)"XL",或者用一個(gè)"XR"替換一個(gè)"RX"?,F(xiàn)給定起始字符串start和結(jié)束字符串end,請編寫代碼,當(dāng)且僅當(dāng)存在一系列移動操作使得start可以轉(zhuǎn)換成end時(shí), 返回True。

示例 :

輸入: start = "RXXLRXRXL", end = "XRLXXRRLX"
輸出: True
解釋:
我們可以通過以下幾步將start轉(zhuǎn)換成end:
RXXLRXRXL ->
XRXLRXRXL ->
XRLXRXRXL ->
XRLXXRRXL ->
XRLXXRRLX

提示:

1 <= len(start) = len(end) <= 10000。

startend中的字符串僅限于'L',?'R''X'

解答思路:雙指針法

?這個(gè)題目說實(shí)話,會的是感覺真會,不會的是想破腦袋也解不出來(當(dāng)然還伴隨頭疼哈哈哈),我在拿到這個(gè)題目的時(shí)候想到了雙指針法,當(dāng)然,光是想到方法還不行,還必須實(shí)現(xiàn)出來(不瞞你們說,這題我解了將近1個(gè)小時(shí)哈哈哈)好,廢話不多說,開始我們的思路!

分析:

拿到題目時(shí),首先要明確我們的目標(biāo)-->用一系列操作使得start可以轉(zhuǎn)換成end時(shí), 返回True。

那么操作是什么呢?"LX"替換一個(gè)"XL",或者用一個(gè)"XR"替換一個(gè)"RX",看到這里我們還是一臉懵逼,別急,我們接著看這個(gè)操作的內(nèi)容,"LX"替換"XL"說明了什么?說明start中的L必須在對應(yīng)的end中L的右邊,那么"XR"替換"RX"是不是就說明了start中的R必須在end中R的左邊!!這樣思路就清晰一點(diǎn)。我們拿示例畫個(gè)草圖理解一下:

leetcode相鄰字符取反,每日一道LeetCode,java,leetcode,算法,競賽,開發(fā)語言

當(dāng)位置不對應(yīng)的時(shí)候,直接返回false,對應(yīng)的情況下我們就可以想到用雙指針來比較其位置,當(dāng)我們的兩個(gè)指針指向內(nèi)容都是R或者L的時(shí)候記錄其下標(biāo),然后進(jìn)行比較,比較什么?前面說過,start中的L位置必須比end的大,也就是假如我們定義i指針指向start。j指向end的時(shí)候,當(dāng)i指向的值是L的時(shí)候,i必須要大于j,否則返回false,同理,當(dāng)i指向的值是R的時(shí)候,i必須小于j,否則返回false。如果執(zhí)行跳出了循環(huán),則說明所有的條件都滿足了,返回true!解答完畢!,詳細(xì)情況請看解題代碼部分。

Java解題代碼:??

class Solution {
    public boolean canTransform(String start, String end) {

        int i=0;
        int j=0;
        int len=start.length();
        //如果去掉所有X后不能相等就false
        if(!start.replaceAll("X","").equals(end.replaceAll("X","")))
        return false;
        //相等之后判斷是否滿足條件
        while(i<len&&j<len){

            while(i<len&&start.charAt(i)=='X'){
                i++;
            }
            while(j<len&&end.charAt(j)=='X'){
                j++;
            }

            //進(jìn)行判斷,如果是L,則i必須>j
            //如果是R,則i必須小于j
            if(i<len&&j<len&&start.charAt(i)=='L'&&i<j){
                return false;
            }
            if(i<len&&j<len&&start.charAt(i)=='R'&&i>j){
                return false;
            }
            i++;
            j++;
        }

        return true;

    }
}

?“ 本期的分享就到這里了,?記得給博主一個(gè)三連哈,你的支持是我創(chuàng)作的最大動力!???文章來源地址http://www.zghlxwxcb.cn/news/detail-811543.html

到了這里,關(guān)于LeetCode競賽題目—在LR字符串中交換相鄰字符的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包