Leetcode/LeetCode75

[Stack][Medium] 2390. Removing Stars From a String

자전거통학 2023. 12. 12. 00:12

https://leetcode.com/problems/removing-stars-from-a-string/description

 

Removing Stars From a String - LeetCode

Can you solve this real interview question? 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 it

leetcode.com

 

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;
}