Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

290
Vistas
Calcular una puntuación alfabética para una palabra

¿Cómo puedo generar una puntuación numérica para una cadena, que luego puedo usar para ordenar las cosas alfabéticamente?

(Me gustaría agregar objectIds a un conjunto ordenado redis basado en una propiedad de nombre. Esto necesita un puntaje numérico. Mi lista de cosas puede ser demasiado grande para ordenarlas todas a la vez, por lo tanto, quiero calificar cada elemento individualmente)

Las palabras anteriores en una lista alfabética deben tener una puntuación más baja, con 'a' = 0 .

Mi enfoque ingenuo hasta ahora; (posición alfabética de la letra de Reemplazar una letra con su posición alfabética )

 function alphaScoreString(inputString) { let score = 0 inputString .trim() .toLowerCase() .split('') .map((letter, index) => { const letterNumber = parseInt(letter, 36) - 10 if (letterNumber >= 0) { score += letterNumber / (index + 1) } }) return score * 1000 }

Esto no funciona, como

 alphaScoreString('bb') 1500 alphaScoreString('bc') 2000 alphaScoreString('bbz') 9833.333333333334

Puede ver que 'bbz' tiene una puntuación más alta que 'bc', mientras que debería ser más baja, ya que 'bbz' vendría antes que 'bc' en una lista alfabética.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puede convertir cada carácter a su Unicode (y asegurarse de que cada carácter tenga 4 dígitos rellenando la cadena. Por ejemplo, "H" = 72 pero se rellena a 0072: al hacer una comparación palabra por palabra, aún puede determinar el "orden alfabético" de cada cadena:

 var instring = "Hello World"; var output = ""; for(i=0; i<instring.length;i++){ const newchar = String(instring.charCodeAt(i)).padStart(4, '0'); output = output.concat(newchar) console.log(output); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Answer writen in python. char_codex = {'a':0.01, 'b':0.02, 'c':0.03, 'd':0.04, 'e':0.05, 'f':0.06, 'g':0.07, 'h':0.08, 'i':0.09, 'j':0.10, 'k':0.11, 'l':0.12, 'm':0.13, 'n':0.14, 'o':0.15, 'p':0.16, 'q':0.17, 'r':0.18, 's':0.19, 't':0.20, 'u':0.21, 'v':0.22, 'w':0.23, 'x':0.24, 'y':0.25, 'z':0.26} def alphabetic_score(word): bitwiseshift = '1' scores = [0.00] * len(word) for index, letter in enumerate(word.lower()): if index is 0: scores[index] = char_codex[letter] else: bitwiseshift = bitwiseshift+'00' scores[index] = char_codex[letter]/int(bitwiseshift) return sum(scores)
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda