Ermitteln Sie anhand einer Zeichenfolge mit den Investitionsdaten mehrerer Personen, wie viel Gewinn / Verlust sie verbucht haben.
Die Zeichenfolge enthält nur Groß- und Kleinbuchstaben wie folgt:
AABaBbba
Jeder Buchstabe steht für eine Person - ein Großbuchstabe bedeutet kaufen, ein Kleinbuchstabe bedeutet verkaufen. Der Kurs der Aktie, in die sie investieren (CGLF), beginnt bei 50 USD. Nachdem jemand gekauft hat, steigt der Preis um 5%. Nachdem jemand verkauft hat, sinkt der Preis um 5%. Sie müssen herausfinden, wie viel Geld jede Person, die teilgenommen hat, verdient / verloren hat.
Anmerkungen:
- Die Zeichenfolge ist immer gültig, kein Verkauf ohne ersten Kauf. Außerdem wird jeder, der eine Aktie kauft, diese letztendlich verkaufen.
- Ihre Berechnungen sollten auf mindestens 6 Dezimalstellen genau sein. Die endgültigen Antworten sollten jedoch auf zwei Dezimalstellen gerundet werden.
Testfälle:
Eingang: AABaBbba
- A: Kaufen - 50 US-Dollar
- A: Kaufen - 52,50 USD
- B: Kaufen - 55,125 $
- a: Verkaufen - $ 57,88125
- B: Kaufen - 54,9871875 USD
- b: Verkaufen - $ 57.736546875
- b: Verkaufen - 54,8497195313 $
- a: Verkaufen - $ 52.1072335547
- Person A Gewinn:
57.88125+52.1072335547-50-52.50=
7.4884835547 - Person B Gewinn:
57.736546875+54.8497195313-55.125-54.9871875=
2.4740789063
Ausgabe: A:7.49,B:2.47
(Reihenfolge spielt keine Rolle, Trennzeichen nicht erforderlich)
Eingang: DGdg
- D: Kaufen - 50 $
- G: Kaufen - 52,50 USD
- d: Verkauf - 55,125 USD
- g: Verkaufen - 52,36875 $
- Person D Gewinn:
55.125-50=
5.125 - Person G Gewinn:
52.36875-52.50=
-0,13125
Ausgabe: D:5.13,G:-.13
Eingang: ADJdja
- A: Kaufen - 50 US-Dollar
- D: Kaufen - 52,50 USD
- J: Kaufen - 55,125 $
- d: Verkaufen - $ 57,88125
- j: Verkaufen - 54,9871875 $
- a: Verkaufen - $ 52.237828125
- Person A Gewinn:
52.237828125-50=
2.237828125 - Person D Gewinn:
57.88125-52.50=
5.38125 - Person J Gewinn:
54.9871875-55.125=
-0,1378125
Ausgabe: A:2.24,D:5.38,J:-.14
round
Zeug ist komisch;5.125
rundet5.12
standardmäßig auf. Wird das akzeptiert?Antworten:
Japt,
9184 BytesBasierend auf meiner Antwort von JS. Probieren Sie es online!
quelle
Java, 277 Bytes
Ungolfed:
quelle
float
, dies spart Bytes und kann Ihnen zusätzlichen Gewinn bringen;)JavaScript (ES7),
145142 BytesIch kann keinen kürzeren Weg finden, um die Ergebnisse abzurunden ...
Unterhaltsame Tatsache: Dies wären nur 101 Bytes, wenn nicht die Rundungsanforderung erfüllt wäre:
quelle
Python 3, 116 Bytes
Ungolfed
quelle
u=2*(c>C)-1
.