Skip to content

Commit 1465f40

Browse files
authored
Update Custom Sort String.java
1 parent b980b29 commit 1465f40

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

Medium/Custom Sort String.java

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
11
class Solution {
22
public String customSortString(String order, String s) {
3-
Map<Character, Integer> map = new HashMap<>();
4-
int position = 1;
3+
Map<Character, Integer> frequency = new HashMap<>();
4+
for (char c : s.toCharArray()) {
5+
frequency.put(c, frequency.getOrDefault(c, 0) + 1);
6+
}
7+
StringBuilder sb = new StringBuilder();
58
for (char c : order.toCharArray()) {
6-
map.put(c, position++);
9+
int count = frequency.getOrDefault(c, 0);
10+
while (count-- > 0) {
11+
sb.append(c);
12+
}
13+
frequency.put(c, 0);
14+
}
15+
for (Character key : frequency.keySet()) {
16+
int count = frequency.getOrDefault(key, 0);
17+
while (count-- > 0) {
18+
sb.append(key);
19+
}
720
}
8-
return s.chars()
9-
.mapToObj(c -> (char) c)
10-
.sorted(Comparator.comparing(o -> map.getOrDefault(o, 0)))
11-
.collect(Collector.of(StringBuilder::new,
12-
StringBuilder::append,
13-
StringBuilder::append,
14-
StringBuilder::toString));
21+
return sb.toString();
1522
}
1623
}

0 commit comments

Comments
 (0)