본문 바로가기

Algorithm/String

(C++) - LeetCode (easy) 557. Reverse Words in a String III

반응형

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

 

Reverse Words in a String III - LeetCode

Can you solve this real interview question? Reverse Words in a String III - Given a string s, reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.   Example 1: Input: s = "Let's take Leet

leetcode.com

문자열을 다루는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

1. 공백을 구분자로 문자열 token을 나눠 vector<string>에 저장하는 함수 split을 구현해 수행해줍니다. 이를 vector <string> splitedString에 저장해줍니다.2. 정답 변수 ans를 선언해 줍니다.

📔 풀이과정

1. splitedString에 대해 for loop를 수행하며 매 원소를 뒤집어줍니다.

2. 뒤집어진 문자열을 구분자와 함께 ans에 붙여줍니다.

3. 매 loop마다 구분자를 붙였으므로 마지막 구분자는 제거해줍니다.

📔 정답 출력 | 반환

ans를 반환해줍니다.


📕 Code

📔 C++

class Solution {
public:
    vector <string> split(string input, char delimeter){
        vector <string> res;
        stringstream ss(input);
        string token;
        while(getline(ss,token,delimeter)){
            res.push_back(token);
        }
        return res;
    }

    string reverseWords(string s) {
        vector <string> splitedString = split(s, ' ');
        string ans;
        for(auto sp : splitedString) {
            reverse(sp.begin(), sp.end());
            ans += sp + " ";
        }
        ans.pop_back();
        return ans;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.