본문 바로가기

Algorithm/자료구조

(C++) - LeetCode (easy) 884. Uncommon Words from Two Sentences

반응형

https://leetcode.com/problems/uncommon-words-from-two-sentences/description/

 

Uncommon Words from Two Sentences - LeetCode

Can you solve this real interview question? Uncommon Words from Two Sentences - A sentence is a string of single-space separated words where each word consists only of lowercase letters. A word is uncommon if it appears exactly once in one of the sentences

leetcode.com

자료구조를 이용해 푼 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

c++은 따로 split 함수가 없으므로 구현해 사용해야 합니다. 공백으로 구분해 vector <string>을 반환하는 함수 split을 수행해줍니다. s1, s2에 대해 split을 수행한 결과를 vector sVec과 s2Vec을 선언해 저장합니다.

📔 풀이과정

1. map을 선언해 sVec, s2Vec에 원소들의 빈도수를 세어 저장해줍니다.

2. 공통되지 않은 단어는 빈도수가 1이므로 해당 원소들만 vector ans에 저장해줍니다.

📔 정답 출력 | 반환

ans를 반환해줍니다.


📕 Code

📔 C++

class Solution {
public:
    vector <string> split(string input, char delimiter){
        vector <string> result;
        stringstream ss(input);
        string tmp;

        while(getline(ss,tmp,delimiter)) result.push_back(tmp);
        return result;
    }

    vector<string> uncommonFromSentences(string s1, string s2) {
        vector <string> sVec = split(s1, ' ');
        vector <string> s2Vec = split(s2, ' ');
        vector <string> ans;

        map <string, int> m;
        
        for(auto s : sVec) {
            m[s]++;
        }

        for(auto s : s2Vec) {
            m[s]++;
        }

        for(auto el : m) {
            if(el.second == 1) {
                ans.push_back(el.first);
            }
        }

        return ans;
    }
};

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