Leetcode/LeetCode75

[Array][String] [Medium] 151. Reverse Words in a String

자전거통학 2023. 11. 26. 01:50

https://leetcode.com/problems/reverse-words-in-a-string

 

Reverse Words in a String - LeetCode

Can you solve this real interview question? Reverse Words in a String - Given an input string s, reverse the order of the words. A word is defined as a sequence of non-space characters. The words in s will be separated by at least one space. Return a strin

leetcode.com

 

Q. s는 space와 space가 아닌 문자, 즉 단어들의 집합이다. 이때 문장내에서 이 단어들의 순서만 뒤집어 출력하라.

 

string reverseWords(string s)
{
    // 단어가 space 캐릭터가 아닌 연속된 캐릭터 집합이라고 하면, 
    // s에 대해 이 단어들를 뒤집은 s를 출력하라.
    vector<string> vWords;
    string cur = "";
    for (int k = 0; k < s.length(); ++k)
    {
        char now = s[k];
        if (now == ' ')
        {
            if (!cur.empty())
            {
                vWords.push_back(cur);
                cur = "";
            }
        }
        else cur += now;
    }
    if (!cur.empty())
        vWords.push_back(cur);

    reverse(vWords.begin(), vWords.end());

    string ret = "";
    for (int k = 0; k < vWords.size(); ++k)
    {
        ret += vWords[k];
        if (k < vWords.size() - 1) ret += " ";
    }
    return ret;
}

 

Comment.. 딱히 꼬인 부분이 없는 문제다. 직관대로 코드를 작성하면 O(N)의 TC를 가지는 normal한 solution이 나온다...