https://leetcode.com/problems/removing-stars-from-a-string/description
Q. input string s는 소문자와 *로 구성되어 있다. 이때 *와 *의 바로 왼쪽의 문자를 제거하고, 그 결과를 반환하라.
Solution.
stack 처리의 전형적인 문제.
난이도는 사실상 easy.
string removeStars(string s)
{
stack<char> sBuff;
for (int k = 0; k < s.size(); ++k)
{
if (s[k] == '*')
{
if (sBuff.size())
sBuff.pop(); // *이면 바로 좌측 문자 제거.
}
else sBuff.push(s[k]); // 그 외에는 모두 push.
}
string ret;
ret.resize(sBuff.size());
int stackSize = sBuff.size();
for(int k = 0; k < stackSize; ++k)
{
ret[stackSize - 1 - k] = sBuff.top();
sBuff.pop();
}
return ret;
}
'Leetcode > LeetCode75' 카테고리의 다른 글
[Linked List][Medium] 2095. Delete the Middle Node of a Linked List (0) | 2023.12.16 |
---|---|
[Stack][Medium] 735. Asteroid Collision (0) | 2023.12.12 |
[HashMap/Set][Medium] 2352. Equal Row and Column Pairs (0) | 2023.12.11 |
[HashMap/Set][Medium] 1657. Determine if Two Strings Are Close (1) | 2023.12.10 |
[HashMap/Set][Easy] 1207. Unique Number of Occurrences (0) | 2023.12.09 |