-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconstruct-note.js
More file actions
29 lines (25 loc) · 797 Bytes
/
construct-note.js
File metadata and controls
29 lines (25 loc) · 797 Bytes
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
/**
* Build two frequency counters. If any of the message characters are not
* found in the 'letters' characters, or if there are not enough of them,
* return false. Otherwise return true.
*/
function constructNote(message, letters) {
let frequency_count = {};
// Count the frequency of each letter in the given letters
for(let letter of letters) {
if(!frequency_count[letter]){
frequency_count[letter] = 1;
} else {
frequency_count[letter]++;
}
}
// Decrease the count for each character in message
for(let char of message){
if(!frequency_count[char] || frequency_count[char] <= 0){
return false;
}
frequency_count[char]--;
}
return true;
}
// Time Complexity: O(M + N)