Re: [閒聊] 每日leetcode

看板Marginalman作者 (神楽めあ的錢包)時間1年前 (2024/12/05 21:15), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1182/1548 (看更多)
2337. Move Pieces to Obtain a String 思路 two pointer 兩個指標i、j分別對應到start跟target 遇到'_'就繼續往下一個,直到兩個指標都指向非'_'的元素 接著判斷兩個指標指向的元素是不是相同 不是就回傳false (1)如果是'L' 看i是不是比j還小 是就回傳false (2)如果是'R' 看i是不是比j還大 是就回傳false 如果能這樣一直比對成功直到最後 就回傳true golang code func canChange(start string, target string) bool { n, m := len(start), len(target) i, j := 0, 0 for i < n && j < m { for i < n && start[i] == '_' { i++ } for j < m && target[j] == '_' { j++ } if i < n && j < m { if start[i] == target[j] { if (start[i] == 'L' && i < j) || (start[i] == 'R' && i > j) { return false } i++ j++ } else { return false } } } for i < n && start[i] == '_' { i++ } for j < m && target[j] == '_' { j++ } if i < n || j < m { return false } return true } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.212.231 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1733404549.A.F55.html
文章代碼(AID): #1dKQU5zL (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1dKQU5zL (Marginalman)