To wyzwanie inspirowane matematyką jest faktem. Programowanie nie jest .
Notacja matematyczna dla silni lub faktu jest wykrzyknikiem !. Wykrzyknik jest również częstym symbolem notw wielu językach programowania.
Wyzwanie:
Weź ciąg zawierający cyfry i znaki: + !jako dane wejściowe i wyjściowe wykonaj następujące czynności:
Wszystko przed wykrzyknikiem powinno być ocenione jako wyrażenie matematyczne, tak też 2+2byłoby 4.
Wszystko po jednym wykrzykniku powinno być dołączone jako akcesoria do wszystkiego, co jest przed nim, więc: 2+2!5powinno dać 45, ponieważ 2+2=4i 5jest akcesorium. 2+2!5+5powinien dać 410.
Ponieważ !oznacza to również not, że nic, co po fakcie nie jest akcesorium, nie powinno być dołączane. Tak więc 2+2!!5powinienem dać 4, ponieważ 5nie jest akcesorium. Teraz not(not(true))==true, więc 2+2!!!5powinien dać 45. 2+2!!5!5+5powinien dać:, 410ponieważ 2+2=4następnie następuje silnia i !5!5+5. Pierwszy 5nie jest faktem, ale 5+5jest po kolejnym wykrzykniku i dlatego jest faktem po raz kolejny.
Wyjaśnienia:
- Wykrzykniki nie będą przylegać do znaku
+po obu stronach. +Liczby nie będą prowadzić (to5nie jest+5).- Opcjonalnie możesz dołączyć wiodące zero, jeśli jest to wynik wyrażenia przed pierwszym
!. Zarówno4i04są przyjmowane wyjście do wejścia:0+0!4
Streszczenie: oceń każdą sumę (traktując !jako separatory). Następnie odrzuć wszystkie liczby, które pojawiają się po parzystej liczbie !(licząc od początku ciągu). Następnie usuń wszystko !.
Przypadki testowe:
!
<- Empty string
5
5
12!
12
!87
87
!!5
<- Empty string
5+5!2+2
104
5+5!!2+2
10
1!2!3!4!5!6!7!8!9
12468
10+10!!2+2!!3+3!4+4
208
2!!3!5
25
2!!3!5!7
25
10!!!!!!!5
105
To jest golf golfowy, więc wygrywa najkrótszy kod w bajtach (w każdym języku)! Wyjaśnienia są bardzo zalecane!
25(patrz dodany przypadek testowy). Co ważniejsze 2!!3!5!7, nadal by dawał 25, ponieważ jest parzysta liczba po !lewej stronie 7(więc nie liczysz tylko biegu tuż przed liczbą, ale całą !pozostałą część).
Row?