Intermedio 0 resueltos 0% de aceptación

Readability Grade

Estimate the school grade needed to read a text.

Lo que aprenderás

  • Contar letras, palabras y oraciones
  • Aplicar la fórmula de Coleman-Liau
  • Redondear y acotar un nivel escolar

Problema

The Coleman-Liau index estimates the U.S. grade level for a text: index = 0.0588 × L − 0.296 × S − 15.8, where L is the average number of letters per 100 words and S the average number of sentences per 100 words. Letters are A–Z/a–z, words are separated by spaces, and each ., ! or ? ends a sentence. Round the index to the nearest whole number.

Implement readability_grade(text).

Input

text: English text with at least one word.

Output

Return "Before Grade 1" when the index is below 1, "Grade 16+" when it is 16 or more, otherwise "Grade N".

Restricciones

1 ≤ length ≤ 10,000

Ejemplos

Ejemplo 1
Entrada:
text = "One fish. Two fish. Red fish. Blue fish."

Salida esperada:
expected = "Before Grade 1"
Entrada:
std::string text = "One fish. Two fish. Red fish. Blue fish.";

Salida esperada:
std::string expected = "Before Grade 1";
Entrada:
string text = "One fish. Two fish. Red fish. Blue fish.";

Salida esperada:
string expected = "Before Grade 1";

Explicación

29 letters, 8 words and 4 sentences give an index below 1: "Before Grade 1".

Ejemplo 2
Entrada:
text = "Harry Potter was a highly unusual boy in many ways. For one thing, he hated the summer holidays more than any other time of year. For another, he really wanted to do his homework, but was forced to do it in secret, in the dead of the night. And he also happened to be a wizard."

Salida esperada:
expected = "Grade 5"
Entrada:
std::string text = "Harry Potter was a highly unusual boy in many ways. For one thing, he hated the summer holidays more than any other time of year. For another, he really wanted to do his homework, but was forced to do it in secret, in the dead of the night. And he also happened to be a wizard.";

Salida esperada:
std::string expected = "Grade 5";
Entrada:
string text = "Harry Potter was a highly unusual boy in many ways. For one thing, he hated the summer holidays more than any other time of year. For another, he really wanted to do his homework, but was forced to do it in secret, in the dead of the night. And he also happened to be a wizard.";

Salida esperada:
string expected = "Grade 5";

Explicación

The average word and sentence lengths give an index that rounds to 5: "Grade 5".

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Cuenta letras, palabras y oraciones por separado en el mismo texto.

Pista 2

Usa la fórmula dada con letras por 100 palabras y oraciones por 100 palabras.

Pista 3

Redondea al entero más cercano antes de elegir la etiqueta de salida.

Complejidad esperada

tiempo O(n), espacio extra O(1)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.