Primera letra no repetida

Santa 🎅 quiere saber cuál es la primera letra no repetida en el nombre de un juguete 🎁.

Escribe una función que reciba un string y devuelva la primera letra que no se repite, ignorando mayúsculas y minúsculas al contar, pero devolviendo la letra tal como aparece en el string.

Si no hay ninguna, devuelve una cadena vacía ("").

Ejemplos:

findUniqueToy('Gift') // 'G'
// ℹ️ La G es la primera letra que no se repite
// y la devolvemos tal y como aparece

findUniqueToy('sS') // ''
// ℹ️ Las letras se repiten, ya que no diferencia mayúsculas

findUniqueToy('reindeeR') // 'i'
// ℹ️ La r se repite (aunque sea en mayúscula)
// y la e también, así que la primera es la 'i'

// Más casos:
findUniqueToy('AaBbCc') // ''
findUniqueToy('abcDEF') // 'a'
findUniqueToy('aAaAaAF') // 'F'
findUniqueToy('sTreSS') // 'T'
findUniqueToy('z') // 'z'

Solution

function findUniqueToy(toyName: string): string {
  const letterCount: Record<string, number> = {};

  for (const char of toyName) {
    const lowerChar = char.toLowerCase();
    letterCount[lowerChar] = (letterCount[lowerChar] || 0) + 1;
  }

  for (const char of toyName) {
    if (letterCount[char.toLowerCase()] === 1) {
      return char; 
    }
  }

  return ''; 
}