Re: [閒聊] 每日LeetCode已回收

看板Marginalman作者 (みけねこ的鼻屎)時間3年前 (2022/11/10 09:03), 編輯推噓2(200)
留言2則, 2人參與, 3年前最新討論串95/719 (看更多)
1047. Remove All Adjacent Duplicates In String 給予一個字串s,若該字串存在任意兩字元相鄰則移除該兩個字元,直到不能移除為止。 Example: Input: s = "abbaca" Output: "ca" Explanation: abbaca -> aaca -> ca 法一 堆疊 思路: 1.基本上同前幾天的每日一題 #1ZQR2NID (Marginalman),只是判斷堆疊進出的條件 從大寫+小寫變成兩個相同字母 Java Code: ------------------------------- class Solution { public String removeDuplicates(String s) { Stack<Character> stack = new Stack<>(); for (int i = 0; i < s.length(); i++) { if (stack.isEmpty() || stack.peek() != s.charAt(i)) { stack.push(s.charAt(i)); } else { stack.pop(); } } char[] chars = new char[stack.size()]; for (int i = stack.size() - 1; i >= 0; i--) { chars[i] = stack.pop(); } return new String(chars); } } ------------------------------- 法二 類堆疊 思路: 1.基本上也是堆疊的概念,只是進出的動作改用StringBuilder來實作,結果不用像堆疊 一樣要反轉。 Java Code: -------------------------------- class Solution { public String removeDuplicates(String S) { StringBuilder sb = new StringBuilder(); for (char c : S.toCharArray()) { int size = sb.length(); if (size > 0 && sb.charAt(size - 1) == c) { sb.deleteCharAt(size - 1); } else { sb.append(c); } } return sb.toString(); } } -------------------------------- https://i.imgur.com/x7iAaYu.png
-- https://i.imgur.com/uiFto42.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.68.131 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1668042219.A.FB2.html

11/10 09:40, 3年前 , 1F
今天怎麼沒有龍大
11/10 09:40, 1F

11/10 09:59, 3年前 , 2F
大師
11/10 09:59, 2F
文章代碼(AID): #1ZR4th-o (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1ZR4th-o (Marginalman)