Einfach 0 gelöst 0% Erfolgsquote

Sum a Flat JSON Object

Parse a flat JSON object whose values are integers and add up the values.

Das lernst du

  • Read key-value pairs from JSON text
  • Handle spaces and negative numbers
  • Sum values in a 64-bit integer

Problem

Übersetzung anzeigen

Programs often receive JSON such as {"apples": 3, "pears": 5}. Libraries like System.Text.Json parse it for you, but parsing a simple case by hand shows how the format works.

The input is a flat JSON object: {, then zero or more "key": value pairs separated by commas, then }. Keys are quoted and contain no quotes, commas or colons; values are integers, possibly negative. Spaces may appear around any of the symbols.

Implement sum_json_numbers(text).

Input

text: The JSON object.

Output

Return the sum of all values (0 for an empty object).

Einschränkungen

2 ≤ length of text ≤ 100,000

At most 10,000 pairs; every value and the sum fit in a 64-bit integer

Beispiele

Beispiel 1
Eingabe:
text = "{\"apples\": 3, \"pears\": 5}"

Erwartete Ausgabe:
expected = 8
Eingabe:
std::string text = "{\"apples\": 3, \"pears\": 5}";

Erwartete Ausgabe:
long long expected = 8;
Eingabe:
string text = "{\"apples\": 3, \"pears\": 5}";

Erwartete Ausgabe:
long expected = 8;

Erläuterung

3 + 5 = 8.

Beispiel 2
Eingabe:
text = "{ \"debt\" : -20 , \"cash\":15 }"

Erwartete Ausgabe:
expected = -5
Eingabe:
std::string text = "{ \"debt\" : -20 , \"cash\":15 }";

Erwartete Ausgabe:
long long expected = -5;
Eingabe:
string text = "{ \"debt\" : -20 , \"cash\":15 }";

Erwartete Ausgabe:
long expected = -5;

Erläuterung

Spaces around the symbols do not matter: −20 + 15 = −5.

So gehst du vor

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

Hinweis 1

Remove the braces, then split the pairs at commas.

Hinweis 2

Each value is the text after the colon; trim spaces before converting.

Hinweis 3

Use a 64-bit integer and return 0 for an empty object.

Erwartete Komplexität

O(length of text) time, O(1) extra space

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.