Einfach 0 gelöst 0% Erfolgsquote

Formen-Factory

Erzeuge Formen aus Textbeschreibungen mit einer Factory und gib die Fläche jeder Form zurück.

Das lernst du

  • Objekte aus einer Textbeschreibung erzeugen
  • Die Erzeugung hinter einer Funktion verbergen
  • Jede Form ihre eigene Fläche berechnen lassen

Problem

Das factory method-Muster verbirgt, wie Objekte erzeugt werden: Du fragst die Factory nach einer Form per Name und erhältst ein Objekt, das seine eigene Fläche berechnen kann.

Jede Beschreibung ist ein Formenname, gefolgt von seinen Zahlen, getrennt durch Leerzeichen:

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

Implementiere shape_factory_areas(shapes).

Input

shapes: Die Beschreibungen. Zahlen dürfen Dezimalstellen haben.

Output

Gib die Fläche jeder Form in Reihenfolge zurück. Antworten innerhalb von 1e-6 werden akzeptiert.

Einschränkungen

1 ≤ Anzahl der Formen ≤ 1,000

0 < jede Zahl ≤ 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 und 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

Lies das erste Wort, um zu wissen, welche Form du baust.

Hinweis 2

Ordne jedem Formnamen seine Flächenformel zu.

Hinweis 3

Nutze π aus der Mathe-Bibliothek deiner Sprache und behalte die volle Genauigkeit.

Erwartete Komplexität

Zeit O(Anzahl der Formen), zusätzlicher Speicher O(Anzahl der Formen)

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.