Einfach 0 gelöst 0% Erfolgsquote

Shape Factory

Create shapes from text descriptions with a factory and return the area of each one.

Das lernst du

  • Create objects from a text description
  • Hide construction behind one function
  • Let each shape compute its own area

Problem

Übersetzung anzeigen

The factory method pattern hides how objects are created: you ask the factory for a shape by name and get back an object that knows how to compute its own area.

Each description is a shape name followed by its numbers, separated by spaces:

  • circle r: area π·r²
  • square s: area s²
  • rectangle w h: area w·h
  • triangle b h: area b·h / 2

Implement shape_factory_areas(shapes).

Input

shapes: The descriptions. Numbers may have decimals.

Output

Return the area of each shape, in order. Answers within 1e-6 are accepted.

Einschränkungen

1 ≤ number of shapes ≤ 1,000

0 < every number ≤ 1,000

Beispiele

Beispiel 1
Eingabe:
shapes = ["square 3", "rectangle 2 5", "triangle 4 3"]

Erwartete Ausgabe:
expected = [9.0, 10.0, 6.0]
Eingabe:
std::vector<std::string> shapes = {"square 3", "rectangle 2 5", "triangle 4 3"};

Erwartete Ausgabe:
std::vector<double> expected = {9.0, 10.0, 6.0};
Eingabe:
string[] shapes = new string[] {"square 3", "rectangle 2 5", "triangle 4 3"};

Erwartete Ausgabe:
double[] expected = new double[] {9.0, 10.0, 6.0};

Erläuterung

3² = 9, 2·5 = 10 and 4·3/2 = 6.

Beispiel 2
Eingabe:
shapes = ["circle 1"]

Erwartete Ausgabe:
expected = [3.141592653589793]
Eingabe:
std::vector<std::string> shapes = {"circle 1"};

Erwartete Ausgabe:
std::vector<double> expected = {3.141592653589793};
Eingabe:
string[] shapes = new string[] {"circle 1"};

Erwartete Ausgabe:
double[] expected = new double[] {3.141592653589793};

Erläuterung

π·1² = π ≈ 3.141593.

So gehst du vor

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

Hinweis 1

Read the first word to know which shape to build.

Hinweis 2

Map each shape name to its area formula.

Hinweis 3

Use π from your language's math library and keep full precision.

Erwartete Komplexität

O(number of shapes) time, O(number of shapes) 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.