Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit ac7ad51

Browse files
refactor 811
1 parent 28b1725 commit ac7ad51

File tree

1 file changed

+51
-52
lines changed
  • src/main/java/com/fishercoder/solutions

1 file changed

+51
-52
lines changed

src/main/java/com/fishercoder/solutions/_811.java

Lines changed: 51 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -7,60 +7,59 @@
77

88
/**
99
* 811. Subdomain Visit Count
10-
11-
A website domain like "discuss.leetcode.com" consists of various subdomains.
12-
At the top level, we have "com", at the next level, we have "leetcode.com", and at the lowest level, "discuss.leetcode.com".
13-
When we visit a domain like "discuss.leetcode.com", we will also visit the parent domains "leetcode.com" and "com" implicitly.
14-
Now, call a "count-paired domain" to be a count (representing the number of visits this domain received), followed by a space,
15-
followed by the address.
16-
An example of a count-paired domain might be "9001 discuss.leetcode.com".
17-
We are given a list cpdomains of count-paired domains. We would like a list of count-paired domains, (in the same format as the input, and in any order),
18-
that explicitly counts the number of visits to each subdomain.
19-
20-
Example 1:
21-
Input:
22-
["9001 discuss.leetcode.com"]
23-
Output:
24-
["9001 discuss.leetcode.com", "9001 leetcode.com", "9001 com"]
25-
Explanation:
26-
We only have one website domain: "discuss.leetcode.com". As discussed above, the subdomain "leetcode.com" and "com" will also be visited. So they will all be visited 9001 times.
27-
28-
Example 2:
29-
Input:
30-
["900 google.mail.com", "50 yahoo.com", "1 intel.mail.com", "5 wiki.org"]
31-
Output:
32-
["901 mail.com","50 yahoo.com","900 google.mail.com","5 wiki.org","5 org","1 intel.mail.com","951 com"]
33-
Explanation:
34-
We will visit "google.mail.com" 900 times, "yahoo.com" 50 times, "intel.mail.com" once and "wiki.org" 5 times. For the subdomains, we will visit "mail.com" 900 + 1 = 901 times, "com" 900 + 50 + 1 = 951 times, and "org" 5 times.
35-
36-
Notes:
37-
38-
The length of cpdomains will not exceed 100.
39-
The length of each domain name will not exceed 100.
40-
Each address will have either 1 or 2 "." characters.
41-
The input count in any count-paired domain will not exceed 10000.
10+
*
11+
* A website domain like "discuss.leetcode.com" consists of various subdomains.
12+
* At the top level, we have "com", at the next level, we have "leetcode.com", and at the lowest level, "discuss.leetcode.com".
13+
* When we visit a domain like "discuss.leetcode.com", we will also visit the parent domains "leetcode.com" and "com" implicitly.
14+
* Now, call a "count-paired domain" to be a count (representing the number of visits this domain received), followed by a space,
15+
* followed by the address.
16+
* An example of a count-paired domain might be "9001 discuss.leetcode.com".
17+
* We are given a list cpdomains of count-paired domains. We would like a list of count-paired domains, (in the same format as the input, and in any order),
18+
* that explicitly counts the number of visits to each subdomain.
19+
*
20+
* Example 1:
21+
* Input:
22+
* ["9001 discuss.leetcode.com"]
23+
* Output:
24+
* ["9001 discuss.leetcode.com", "9001 leetcode.com", "9001 com"]
25+
* Explanation:
26+
* We only have one website domain: "discuss.leetcode.com". As discussed above, the subdomain "leetcode.com" and "com" will also be visited. So they will all be visited 9001 times.
27+
*
28+
* Example 2:
29+
* Input:
30+
* ["900 google.mail.com", "50 yahoo.com", "1 intel.mail.com", "5 wiki.org"]
31+
* Output:
32+
* ["901 mail.com","50 yahoo.com","900 google.mail.com","5 wiki.org","5 org","1 intel.mail.com","951 com"]
33+
* Explanation:
34+
* We will visit "google.mail.com" 900 times, "yahoo.com" 50 times, "intel.mail.com" once and "wiki.org" 5 times. For the subdomains, we will visit "mail.com" 900 + 1 = 901 times, "com" 900 + 50 + 1 = 951 times, and "org" 5 times.
35+
*
36+
* Notes:
37+
* The length of cpdomains will not exceed 100.
38+
* The length of each domain name will not exceed 100.
39+
* Each address will have either 1 or 2 "." characters.
40+
* The input count in any count-paired domain will not exceed 10000.
4241
*/
4342
public class _811 {
44-
public static class Solution1 {
45-
public List<String> subdomainVisits(String[] cpdomains) {
46-
Map<String, Integer> map = new HashMap<>();
47-
for (String each : cpdomains) {
48-
String[] pair = each.split(" ");
49-
String[] subDomains = pair[1].split("\\.");
50-
StringBuilder sb = new StringBuilder();
51-
for (int i = subDomains.length - 1; i >= 0; i--) {
52-
if (i < subDomains.length - 1) {
53-
sb.insert(0, ".");
54-
}
55-
sb.insert(0, subDomains[i]);
56-
map.put(sb.toString(), map.getOrDefault(sb.toString(), 0) + Integer.parseInt(pair[0]));
43+
public static class Solution1 {
44+
public List<String> subdomainVisits(String[] cpdomains) {
45+
Map<String, Integer> map = new HashMap<>();
46+
for (String each : cpdomains) {
47+
String[] pair = each.split(" ");
48+
String[] subDomains = pair[1].split("\\.");
49+
StringBuilder sb = new StringBuilder();
50+
for (int i = subDomains.length - 1; i >= 0; i--) {
51+
if (i < subDomains.length - 1) {
52+
sb.insert(0, ".");
53+
}
54+
sb.insert(0, subDomains[i]);
55+
map.put(sb.toString(), map.getOrDefault(sb.toString(), 0) + Integer.parseInt(pair[0]));
56+
}
57+
}
58+
List<String> result = new ArrayList<>();
59+
for (String key : map.keySet()) {
60+
result.add(map.get(key) + " " + key);
61+
}
62+
return result;
5763
}
58-
}
59-
List<String> result = new ArrayList<>();
60-
for (String key : map.keySet()) {
61-
result.add(map.get(key) + " " + key);
62-
}
63-
return result;
6464
}
65-
}
6665
}

0 commit comments

Comments
 (0)