Dada uma sequência com dados de investimento de várias pessoas, descubra quanto lucro / perda eles registraram.
A sequência contém apenas letras maiúsculas e minúsculas, assim:
AABaBbba
Cada letra representa uma pessoa - uma letra maiúscula significa comprar, uma letra minúscula significa vender. O preço das ações em que estão investindo (CGLF) começa em US $ 50. Depois que alguém compra, o preço sobe 5%. Depois que alguém vende, o preço cai 5%. Você precisa descobrir quanto dinheiro cada pessoa que participou ganhou / perdeu.
Notas:
- A string sempre será válida, sem venda sem a primeira compra. Além disso, todo mundo que comprar uma ação a venderá eventualmente.
- Seus cálculos devem ser precisos com pelo menos 6 casas decimais. No entanto, as respostas finais devem ser arredondadas para duas casas decimais.
Casos de teste:
Entrada: AABaBbba
- A: Comprar - US $ 50
- A: Comprar - $ 52,50
- B: Comprar - $ 55,125
- a: Vender - $ 57,88125
- B: Comprar - $ 54,9871875
- b: Venda - $ 57.736546875
- b: Vender - $ 54,8497195313
- a: Vender - $ 52,1072335547
- Pessoa A lucro:
57.88125+52.1072335547-50-52.50=
7.4884835547 - Lucro da pessoa B:
57.736546875+54.8497195313-55.125-54.9871875=
2,4740789063
Saída: A:7.49,B:2.47
(o pedido não importa, separadores não são necessários)
Entrada: DGdg
- D: Comprar - US $ 50
- G: Comprar - $ 52,50
- d: Vender - $ 55,125
- g: Vender - $ 52,36875
- Pessoa D lucro:
55.125-50=
5.125 - Pessoa G lucro:
52.36875-52.50=
-0.13125
Resultado: D:5.13,G:-.13
Entrada: ADJdja
- A: Comprar - US $ 50
- D: Comprar - $ 52,50
- J: Comprar - $ 55,125
- d: Vender - $ 57,88125
- j: Vender - $ 54,9871875
- a: Vender - $ 52,237828125
- Pessoa A lucro:
52.237828125-50=
2.237828125 - Pessoa D lucro:
57.88125-52.50=
5.38125 - Lucro da pessoa J:
54.9871875-55.125=
-0.1378125
Resultado: A:2.24,D:5.38,J:-.14
round
as coisas do Python são estranhamente;5.125
arredonda para5.12
por padrão. Isso é aceito?Respostas:
Japt,
9184 bytesCom base na minha resposta JS. Experimente online!
fonte
Java, 277 bytes
Ungolfed:
fonte
float
, isso poupa bytes e você pode obter algum lucro extra;)JavaScript (ES7),
145142 bytesNão consigo encontrar uma maneira mais curta de arredondar os resultados ...
Curiosidade: isso seria apenas 101 bytes, se não fosse o requisito de arredondamento:
fonte
Python 3, 116 bytes
Ungolfed
fonte
u=2*(c>C)-1
diretamente.