Problem
Von Menschen eingegebene Daten sind oft unordentlich. Du erhältst eine Liste von Strings und musst die Einträge addieren, die ganze Zahlen sind, während du den Rest ignorierst, statt abzustürzen.
Ein Eintrag zählt, wenn er nach dem Entfernen von Leerzeichen an beiden Enden aus einem optionalen +- oder --Vorzeichen gefolgt von einer oder mehreren Ziffern besteht. Alles andere (leerer Text, Dezimalzahlen wie "2.5", Wörter) wird übersprungen.
Implementiere sum_valid_numbers(values).
Eingabe
values: Die zu lesenden Einträge.
Ausgabe
Gib die Summe der gültigen ganzen Zahlen zurück (0, wenn es keine gibt).
Einschränkungen
0 ≤ Anzahl der Einträge ≤ 1,000
Jeder Eintrag hat höchstens 20 Zeichen; gültige Zahlen passen in eine 64-Bit-Ganzzahl
Beispiele
Eingabe:
values = ["10", " 5 ", "abc", "-3"]
Erwartete Ausgabe:
expected = 12
Eingabe:
std::vector<std::string> values = {"10", " 5 ", "abc", "-3"};
Erwartete Ausgabe:
long long expected = 12;
Eingabe:
string[] values = new string[] {"10", " 5 ", "abc", "-3"};
Erwartete Ausgabe:
long expected = 12;
Erläuterung
"10", " 5 " (Leerzeichen werden entfernt) und "-3" sind ganze Zahlen; "abc" wird übersprungen. 10 + 5 - 3 = 12.
Eingabe:
values = ["2.5", "", "seven"]
Erwartete Ausgabe:
expected = 0
Eingabe:
std::vector<std::string> values = {"2.5", "", "seven"};
Erwartete Ausgabe:
long long expected = 0;
Eingabe:
string[] values = new string[] {"2.5", "", "seven"};
Erwartete Ausgabe:
long expected = 0;
Erläuterung
Keiner der Einträge ist eine ganze Zahl, also ist die Summe 0.
So gehst du vor
Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.
Hinweis 1
Entferne zuerst die Leerzeichen und prüfe dann, ob der Rest eine gültige ganze Zahl ist.
Hinweis 2
Wenn du in try/except umwandelst (oder die Zeichen prüfst), kannst du ungültige Einträge überspringen, ohne abzubrechen.
Hinweis 3
Ein einzelnes Vorzeichen wie "+" ist keine Zahl.
Erwartete Komplexität
Zeit O(Gesamtlänge), zusätzlicher Speicher O(1)
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.