2
* @param {string[]} names5
var getFolderNames = function (names) {6
// save existed folder names7
let hashMap = new Map();8
for (let name of names) {10
// next smallest suffix number11
// if this name is not present in the map, next smallest suffix will be 112
let number = hashMap.get(name) || 1;13
if (hashMap.has(name)) {14
// append suffix to original name15
finalName += "(" + number + ")";16
// find the smallest suffix that hasn't been used before17
while (hashMap.has(finalName)) {19
// try to use new suffix to update name20
finalName = name + "(" + number + ")";22
// update next smallest suffix number of new name23
hashMap.set(finalName, 1);25
// update next smallest suffix number of original name26
hashMap.set(name, number);28
return Array.from(hashMap.keys());