반응형
https://leetcode.com/problems/unique-email-addresses/description/
구현 문제였습니다.
📕 풀이방법
📔 풀이과정
1. emails의 원소를 돌며 다음을 수행합니다.1-1. localName과 DomainName으로 나눠줍니다.1-2. '.'을 없애거나 '+'가 있으면 뒤의 문자열을 무시하는 filter과정을 localName에 대해서만 수행해줍니다.1-3. filtering된 localName과 DomainName을 다시 합쳐 email형식으로 만들어 줍니다.
2. set에 filtering된 emails의 원소들을 넣어줍니다.
📔 정답 출력 | 반환
set의 size를 반환합니다.
📕 Code
📔 C++
using pss = pair<string,string>;
class Solution {
public:
pss getLocalAndDomainName(string &email) {
string localName, domainName;
auto idx = email.find('@');
return {email.substr(0, idx), email.substr(idx)};
}
string getFilteredName(string localName) {
string filtered;
for(auto c : localName) {
if(c == '+') return filtered;
if(c == '.') continue;
filtered += c;
}
return filtered;
}
void filterEmails(vector <string> &emails) {
for(auto &e : emails) {
pss localAndDomainName = getLocalAndDomainName(e);
e = getFilteredName(localAndDomainName.first) + localAndDomainName.second;
}
}
int numUniqueEmails(vector<string>& emails) {
filterEmails(emails);
set <string> s;
for(auto e: emails) s.insert(e);
return s.size();
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > String' 카테고리의 다른 글
(C++) - LeetCode (easy) 1002. Find Common Characters (0) | 2023.09.25 |
---|---|
(C++, Rust) - LeetCode (easy) 944. Delete Columns to Make Sorted (0) | 2023.09.12 |
(C++, Rust) - LeetCode (easy) 917. Reverse Only Letters (0) | 2023.08.31 |
(C++) - LeetCode (easy) 868. Binary Gap (0) | 2023.08.04 |
(C++) - LeetCode (easy) 859. Buddy Strings (0) | 2023.08.01 |