題目
在一個由 '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'。
解題思路分析1、遍歷;時間複雜度O(n),空間複雜度O(n)
func canTransform(start string, end string) bool { if strings.ReplaceAll(start, "X", "") != strings.ReplaceAll(end, "X", "") { return false } j := 0 for i := 0; i < len(start); i++ { if start[i] == 'L' { // LX=>XL, L是往右的 for end[j] != 'L' { j++ } if i < j { return false } j++ } } j = 0 for i := 0; i < len(start); i++ { if start[i] == 'R' { // XR=>RX, R是往左的 for end[j] != 'R' { j++ } if i > j { return false } j++ } } return true}
總結Medium題目,檢查去除X後字元是否相同,然後遍歷判斷是否對應的L和R的位置
熱門排行
- GC類壓力管道安裝資質辦理,氨製冷(冷庫)管道定期檢驗程序
- 幾種PCBA表面處理的類型
- 歌禮制藥-B(01672)宣佈口服PD-L1小分子抑制劑前藥ASC61 用於治療晚期實體瘤的美國I期臨床試驗完成首例患者給藥
- 深耕CRO服務領域 宣泰醫藥(688247.SH)擬首次公開發行4534萬股
- 壓力容器許可證資質辦理,鉻鉬鋼製壓力容器結構設計規定
- 家裡有點地,這種果樹種上兩棵,栽到花盆裡,夏天就能結果子
- 家裡養株“大將軍”蘭花,花色喜慶,花大如盆,打理很簡單
- 庫存飆升!韓國半導體庫存激增80%
- 多點DMALL合夥人劉桂海:多點DMALL實踐實體零售數字化轉型
- 豬各階段拉稀的原因和解決方案,這篇文章告訴你答案,值得收藏