[Stack, Medium] Removing Stars From a String

송재호·2025년 3월 13일
0

https://leetcode.com/problems/removing-stars-from-a-string/description/?envType=study-plan-v2&envId=leetcode-75

스택을 사용하거나, 아니면 index-1을 통해 값을 비교하거나 선택할 수 있을 것 같다.
스택 문제니까 정석적으로 스택을 사용했다.

참고로 StringBuilder.reverse()는 내부적으로 투포인터를 사용해 swap하는 방식이라고 함. 그러므로 O(N)을 만족시킬 수 있다.

class Solution {
    public String removeStars(String s) {
        
        Stack<Character> stack = new Stack<>();
        for (char c : s.toCharArray()) {
            if (c == '*' && !stack.isEmpty()) {
                stack.pop();
            } else {
                stack.push(c);
            }
        }

        StringBuilder sb = new StringBuilder();
        while (!stack.isEmpty()) {
            sb.append(stack.pop());
        }
        return sb.reverse().toString();
    }
}
profile
식지 않는 감자

0개의 댓글