LeetCode 811. 子域名访问计数
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 811. 子域名访问计数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
一個網站域名,如"discuss.leetcode.com",包含了多個子域名。
作為頂級域名,常用的有"com",下一級則有"leetcode.com",最低的一級為"discuss.leetcode.com"。
當我們訪問域名"discuss.leetcode.com"時,也同時訪問了其父域名"leetcode.com"以及頂級域名 “com”。
給定一個帶訪問次數和域名的組合,要求分別計算每個域名被訪問的次數。
其格式為訪問次數+空格+地址,例如:“9001 discuss.leetcode.com”。
接下來會給出一組訪問次數和域名組合的列表cpdomains 。
要求解析出所有域名的訪問次數,輸出格式和輸入格式相同,不限定先后順序。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/subdomain-visit-count
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Solution { public:vector<string> subdomainVisits(vector<string>& cpdomains) {int count, i, j;vector<string> ans;unordered_map<string,int> m;string str, temp;for(i = 0; i < cpdomains.size(); ++i){str = "";for(j = 0; j < cpdomains[i].size(); ++j){ //獲取數字if(cpdomains[i][j] == ' '){count = stoi(str);str = "";break;}if(cpdomains[i][j] != ' ')str.push_back(cpdomains[i][j]);}temp = "";for(j = cpdomains[i].size()-1; j >= 0; --j){ //從后向前獲取域名if(cpdomains[i][j] != '.' && cpdomains[i][j] != ' '){str.push_back(cpdomains[i][j]);}else if(cpdomains[i][j] == '.'){ //遇到 . reverse(str.begin(), str.end());temp = str+temp;str = ".";if(m.find(temp) == m.end())m[temp] = count;elsem[temp] += count; }else if(cpdomains[i][j] == ' '){ //遇見空格結束reverse(str.begin(), str.end());temp = str+temp;if(m.find(temp) == m.end())m[temp] = count;elsem[temp] += count;break;}}}for(auto it = m.begin(); it != m.end(); ++it){ans.push_back(to_string(it->second)+' '+it->first);}return ans;} };16 ms 13 MB
總結
以上是生活随笔為你收集整理的LeetCode 811. 子域名访问计数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1318. 或运算的最
- 下一篇: LeetCode 438. 找到字符串中