반응형
https://leetcode.com/problems/uncommon-words-from-two-sentences/description/
자료구조를 이용해 푼 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
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;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > 자료구조' 카테고리의 다른 글
(C++, Rust) - LeetCode (easy) 897. Increasing Order Search Tree (0) | 2023.08.23 |
---|---|
(C++) - LeetCode (easy) 222. Count Complete Tree Nodes (0) | 2023.08.16 |
(C++) - LeetCode (easy) 771. Jewels and Stones (0) | 2023.07.12 |
(C++) - LeetCode (easy) 706. Design HashMap (0) | 2023.06.20 |
(C++) - LeetCode (easy) 703. Kth Largest Element in a Stream (0) | 2023.06.17 |