在LR字串中交換相鄰字元

2021-10-08 20:37:41 字數 876 閱讀 4440

在乙個由 『l』 , 『r』 和 『x』 三個字元組成的字串(例如"rxxlrxrxl")中進行移動操作。

一次移動操作指用乙個"lx"替換乙個"xl",或者用乙個"xr"替換乙個"rx"。現給定起始字串start和結束字串end,請編寫**,當且僅當存在一系列移動操作使得start可以轉換成end時, 返回true。

解題思路:

『xl』 -> 『lx』

『rx』 -> 『xr』

可以連續交換,因此我們比較非』x』字元,但交換不可逆,因此有順序前後關係

同為』l』字元,且start中』l』的索引≥end中』l』的索引,匹配繼續;

同為』r』字元,start中』r』的索引≤end中』r』的索引,匹配繼續;

否則匹配結束,返回false;

若兩者最後同時抵達字串末尾,返回true,若只有一端抵達末尾,說明存在字元不匹配,返回

class solution:

def findsubsequences(self, nums: list[int]) -> list[list[int]]:

if len(nums)<2:

return

cur = set()

cur.add((nums[0],))

for num in nums[1:]:

nxt = set()

nxt.add((num,))

for tmp in cur:

if tmp[-1] <= num:

nxt.add(tmp + (num,))

cur |= nxt

return [sub for sub in cur if len(sub) > 1]

777 在LR字串中交換相鄰字元

在乙個由 l r 和 x 三個字元組成的字串 例如 rxxlrxrxl 中進行移動操作。一次移動操作指用乙個 lx 替換乙個 xl 或者用乙個 xr 替換乙個 rx 現給定起始字串start和結束字串end,請編寫 當且僅當存在一系列移動操作使得start可以轉換成end時,返回true。示例 輸入...

179 在LR字串中交換相鄰字元

題目描述 在乙個由 l r 和 x 三個字元組成的字串 例如 rxxlrxrxl 中進行移動操作。一次移動操作指用乙個 lx 替換乙個 xl 或者用乙個 xr 替換乙個 rx 現給定起始字串start和結束字串end,請編寫 當且僅當存在一系列移動操作使得start可以轉換成end時,返回true。...

lr中定義字串變數

需要注意的是陣列必須定義為固定的長度,如 char chary 20 5c2o go gm nhh0 陣列的最大長度為 32064 32k 否則會出現 too many variables 編譯錯誤。7l py0z0 如果定義為變長的字串如 char chary 則程式會出錯。很多人覺得這兩個定義效...