精華區beta Marginalman 關於我們 聯絡資訊
844. Backspace String Compare https://leetcode.com/problems/backspace-string-compare/description 給兩個字串s和t,字串中會有'#'代表退格鍵,判斷退格後的字串是否相同。 思路: 直覺反應要倒著讀,寫一個function抓出下一個要比對的char。 但一直被ref卡住,加上要設很多變數就放棄,改成這版用stack存, 遇到'#'就把前面的pop出來,最後比對兩個stack。 跑出來1ms,參考了幾個0ms的都是用我沒寫出來那種方法:) 寫這個白癡語言真的一直卡一直卡,用c或c++至少可以暴力破解,換成rust直接編不過, 我又想那個了。 rust code: impl Solution { pub fn backspace_compare(s: String, t: String) -> bool { let s_str: Vec<char> = s.chars().collect(); let t_str: Vec<char> = t.chars().collect(); let mut s_stack: Vec<char> = vec![]; let mut t_stack: Vec<char> = vec![]; for ch in s_str { if ch == '#'{ s_stack.pop(); } else { s_stack.push(ch); } } for ch in t_str { if ch == '#'{ t_stack.pop(); } else { t_stack.push(ch); } } s_stack == t_stack } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.169.2 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1697687176.A.563.html