Mittel 0 gelöst 0% Erfolgsquote

Lesbarkeitsstufe

Schätze die benötigte Schulstufe, um einen Text zu lesen.

Das lernst du

  • Buchstaben, Wörter und Sätze zählen
  • Die Coleman-Liau-Formel anwenden
  • Eine Klassenstufe runden und begrenzen

Problem

Der Coleman-Liau-Index schätzt die US-Schulstufe für einen Text: index = 0.0588 × L − 0.296 × S − 15.8, wobei L die durchschnittliche Buchstabenzahl pro 100 Wörter und S die durchschnittliche Satzanzahl pro 100 Wörter ist. Buchstaben sind A–Z/a–z, Wörter werden durch Leerzeichen getrennt, und jedes ., ! oder ? beendet einen Satz. Runde den Index auf die nächste ganze Zahl.

Implementiere readability_grade(text).

Eingabe

text: Englischer Text mit mindestens einem Wort.

Ausgabe

Gib "Before Grade 1" zurück, wenn der Index unter 1 liegt, "Grade 16+", wenn er 16 oder mehr beträgt, sonst "Grade N".

Einschränkungen

1 ≤ Länge ≤ 10.000

Beispiele

Beispiel 1
Eingabe:
text = "One fish. Two fish. Red fish. Blue fish."

Erwartete Ausgabe:
expected = "Before Grade 1"
Eingabe:
std::string text = "One fish. Two fish. Red fish. Blue fish.";

Erwartete Ausgabe:
std::string expected = "Before Grade 1";
Eingabe:
string text = "One fish. Two fish. Red fish. Blue fish.";

Erwartete Ausgabe:
string expected = "Before Grade 1";

Erläuterung

29 Buchstaben, 8 Wörter und 4 Sätze ergeben einen Index unter 1: "Before Grade 1".

Beispiel 2
Eingabe:
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."

Erwartete Ausgabe:
expected = "Grade 5"
Eingabe:
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.";

Erwartete Ausgabe:
std::string expected = "Grade 5";
Eingabe:
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.";

Erwartete Ausgabe:
string expected = "Grade 5";

Erläuterung

Die durchschnittliche Wort- und Satzlänge ergibt einen Index, der auf 5 gerundet wird: "Grade 5".

So gehst du vor

Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.

Hinweis 1

Zähle Buchstaben, Wörter und Sätze getrennt im selben Text.

Hinweis 2

Verwende die angegebene Indexformel mit Buchstaben pro 100 Wörter und Sätzen pro 100 Wörter.

Hinweis 3

Runde auf die nächste ganze Zahl, bevor du das Ausgabelabel wählst.

Erwartete Komplexität

Zeit O(n), zusätzlicher Speicher O(1)

Referenzen

Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.

Von anderen lernen

Community-Lösungen

Noch keine veröffentlichten Lösungen. Löse die Aufgabe und teile als Erster eine Lösung.