Making File Names Unique LeetCode solution in JavaScript

1
/**
2
* @param {string[]} names
3
* @return {string[]}
4
*/
5
var getFolderNames = function (names) {
6
// save existed folder names
7
let hashMap = new Map();
8
for (let name of names) {
9
let finalName = name;
10
// next smallest suffix number
11
// if this name is not present in the map, next smallest suffix will be 1
12
let number = hashMap.get(name) || 1;
13
if (hashMap.has(name)) {
14
// append suffix to original name
15
finalName += "(" + number + ")";
16
// find the smallest suffix that hasn't been used before
17
while (hashMap.has(finalName)) {
18
number++;
19
// try to use new suffix to update name
20
finalName = name + "(" + number + ")";
21
}
22
// update next smallest suffix number of new name
23
hashMap.set(finalName, 1);
24
}
25
// update next smallest suffix number of original name
26
hashMap.set(name, number);
27
}
28
return Array.from(hashMap.keys());
29
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0