-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcustomSortString.java
30 lines (30 loc) · 997 Bytes
/
customSortString.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Solution {
public String customSortString(String order, String s) {
HashMap<Character, Integer> freqMap = new HashMap<>();
for(int i = 0; i < s.length(); i++){
char k = s.charAt(i);
freqMap.put(k, freqMap.getOrDefault(k, 0) + 1);
}
StringBuilder res = new StringBuilder();
for(int i = 0; i < order.length(); i++){
char c = order.charAt(i);
if(freqMap.containsKey(c)){
int freq = freqMap.get(c);
while(freq > 0){
res.append(c);
freq -= 1;
}
freqMap.remove(c);
}
}
for(Map.Entry<Character, Integer> entry : freqMap.entrySet()){
int freq1 = entry.getValue();
char ch = entry.getKey();
while(freq1 > 0){
res.append(ch);
freq1 -= 1;
}
}
return res.toString();
}
}