Notice
Recent Posts
Recent Comments
Link
wgrgwg-dev
[LeetCode] 2390. Removing Stars From a String [Java] 본문
2390. Removing Stars From a String
You are given a string s, which contains stars *.
In one operation, you can:
- Choose a star in
s. - Remove the closest non-star character to its left, as well as remove the star itself.
Return the string after all stars have been removed.
Note:
- The input will be generated such that the operation is always possible.
- It can be shown that the resulting string will always be unique.
Example 1:
Input: s = "leetcode"
*Output: "lecoe"
Explanation: Performing the removals from left to right:
- The closest character to the 1st star is 't' in "leet**code". s becomes "leecod*e".
- The closest character to the 2nd star is 'e' in "lee*code". s becomes "lecode".
- The closest character to the 3rd star is 'd' in "lecod*e". s becomes "lecoe".
There are no more stars, so we return "lecoe".
Example 2:
Input: s = "erase***"
**Output: ""
Explanation: The entire string is removed, so we return an empty string.
Constraints:
1 <= s.length <= 105sconsists of lowercase English letters and stars*.- The operation above can be performed on
s.
어렵지는 않은 문제였다. 문자열을 순회하면서 *를 만나면 직전(왼쪽)에 있는 문자를 삭제하면 된다.
스택 자료구조를 이용해서 풀고자 했고, 구현은 Deque 클래스를 사용했다.
문자를 하나씩 순회하면서 다음 두 가지 case로 작업해주면 된다.
- If the current character
cis*, the top element of the stack is removed. - If the current character
cis not*, the character is pushed onto the stack.
코드는 다음과 같다.
class Solution {
public String removeStars(String s) {
Deque<Character> dq = new ArrayDeque<>();
for(int i=0; i<s.length(); i++){
char c = s.charAt(i);
if(c!='*'){
dq.addLast(c);
continue;
}
if(!dq.isEmpty()){
dq.removeLast();
}
}
StringBuilder result = new StringBuilder();
for(char c : dq){
result.append(c);
}
return result.toString();
}
}'알고리즘 > LeetCode' 카테고리의 다른 글
| [LeetCode] 841. Keys and Rooms [Java] (0) | 2026.01.20 |
|---|---|
| [LeetCode] 2095. Delete the Middle Node of a Linked List [Java] (0) | 2026.01.18 |
| [LeetCode] 1768. Merge Strings Alternately [Java] (0) | 2026.01.15 |