solve my typescript question of make unique names of a robot [closed]

1 week ago 17
ARTICLE AD BOX

Instructions

Manage robot factory settings.

When a robot comes off the factory floor, it has no name.

The first time you turn on a robot, a random name is generated in the format of two uppercase letters followed by three digits, such as RX837 or BC811.

Every once in a while we need to reset a robot to its factory settings, which means that its name gets wiped. The next time you ask, that robot will respond with a new random name.

The names must be random: they should not follow a predictable sequence. Using random names means a risk of collisions. Your solution must ensure that every existing robot has a unique name.

const usedNames = new Set<string>(); export class Robot { private _name: string; constructor() { this._name = this.generateUniqueName(); } public get name(): string { return this._name; } public resetName(): void { this._name = this.generateUniqueName(); } private generateUniqueName(): string { let name: string; do { name = this.generateRandomName(); } while (usedNames.has(name)); usedNames.add(name); return name; } private generateRandomName(): string { const letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; const letterPart = letters[Math.floor(Math.random() * 26)] + letters[Math.floor(Math.random() * 26)]; const numberPart = Math.floor(100 + Math.random() * 900).toString(); // 000–999 return letterPart + numberPart; } public static releaseNames(): void { usedNames.clear(); } }
Read Entire Article