跳到主要内容

811.子域名访问计数

链接:811.子域名访问计数
难度:Medium
标签:数组、哈希表、字符串、计数
简介:给你一个 计数配对域名 组成的数组 cpdomains ,解析得到输入中每个子域名对应的 计数配对域名 ,并以数组形式返回。

题解 1 - cpp

  • 编辑时间:2022-10-05
  • 执行用时:20ms
  • 内存消耗:12.6MB
  • 编程语言:cpp
  • 解法介绍:哈希存储。
class Solution {
public:
vector<string> subdomainVisits(vector<string>& cpdomains) {
unordered_map<string, int> m;
for (auto &s : cpdomains) {
string data = "";
int cnt = 0;
analysisDomain(s, data, cnt);
for (auto &item : analysisData(data)) {
m[item] += cnt;
}
}
vector<string> ans;
for (auto &item : m) {
ans.push_back(to_string(item.second) + " " + item.first);
}
return ans;
}
void analysisDomain(string &s, string &data, int &cnt) {
bool isCnt = true;
for (int i = 0; i < s.size(); i++) {
if (s[i] == ' ') {
isCnt = false;
} else if (isCnt) {
cnt = cnt * 10 + s[i] - '0';
} else {
data += s[i];
}
}
}
vector<string> analysisData(string &data) {
vector<string> list;
list.push_back(data);
int n = data.size();
for (int i = 0; i < n; i++) {
if (data[i] == '.') {
list.push_back(data.substr(i + 1, n - i));
}
}
return list;
}
};