Natknąłeś się na stary indyjski rękopis, który opisuje kopce zakopanego skarbu. Manuskrypt informuje również o lokalizacji skarbu, z tym że niektóre kluczowe liczby zostały zakodowane pośrednio w tekście. Dowiadujesz się, że tekst wykorzystuje system „Kaadi”, ograniczony podzbiór bardziej powszechnego systemu „Katapayadi”.
(System Katapayadi to starożytny indyjski system do kodowania cyfr jako liter, często używany jako mnemonika do zapamiętywania długich cyfr).
Twoim zadaniem tutaj jest odkodowanie tekstu zakodowanego w systemie Kaadi i wydrukowanie wartości liczbowej.
Detale
Wprowadź znaki
System Kaadi opiera się na zasadach systemu Katapayadi , ale wykorzystuje tylko pierwszy rząd spółgłosek. Twój tekst tutaj został przetłumaczony na alfabet łaciński i wiadomo, że zawiera tylko:
- samogłoski „a”, „e”, „i”, „o”, „u”
- spółgłosek „g”, „k”, „c”, „j” i ich formy kapitałowe (reprezentujące aspirowaną formę tych spółgłosek) oraz „ṅ” i „ñ”.
(Możesz wybrać opcję otrzymywania i obsługiwać „ṅ” jako „ng”, a „ñ” jako „ny”, jeśli jest to wygodniejsze w Twoim języku).
Przypisanie wartości
W tym systemie
każda spółgłoska, po której następuje samogłoska, ma przypisaną cyfrę. To są:
'k'=>1, 'K'=>2,
'g'=>3, 'G'=>4,
'ṅ'=>5,
'c'=>6, 'C'=>7,
'j'=>8, 'J'=>9,
'ñ'=>0
Należy jednak pamiętać, że wartości te mają zastosowanie tylko wtedy, gdy po spółgłosek następuje samogłoska. kacCi
ma taką samą wartość jak kaCi
( ka
, Ci
= (1,7)), ponieważ środkowej c nie towarzyszy samogłoska.
Ponadto, początkowa samogłoska lub sekwencja obu samogłosek oznacza 0
aikaCi
, to:ai
,ka
,Ci
= (0,1,7)Dodatkowe samogłoski gdziekolwiek indziej w środku tekstu nie mają żadnej wartości:
kauCia
jest taki sam, jakkaCi
dodatkowe samogłoski można zignorować.
Końcowa wartość liczbowa
Po ustaleniu wartości cyfr literowych, ostateczna wartość liczbowa jest uzyskiwana jako odwrotna kolejność tych cyfr, tj. Pierwsza cyfra z tekstu jest najmniej znaczącą cyfrą w wartości końcowej.
Na przykład.
GucCi
ma Gu
i Ci
, więc (4, 7), więc końcowa wartość to 74.
kakakaGo
to (1,1,1,4), więc odpowiedź to 4111.
guṅKo
to (3,2), więc koduje 23. ( gungKo
jeśli używasz ASCII -odpowiednik.)
Wejście
- Ciąg zawierający tekst zakodowany w Kaadi
- będzie zawierać tylko samogłoski i powyższe spółgłosek
- samogłoski są zawsze pisane małymi literami i występują w grupach nie większych niż 2
- możesz zaakceptować litery 5 i 0 jako ich znaki Unicode „ṅ” i „ñ” lub jako ich odpowiedniki ASCII „ng” i „ny” (są pisane małymi literami w dowolnej formie)
- możesz założyć, że nie ma spacji ani interpunkcji
Wynik
- Wartość liczbowa tekstu, zgodnie z powyższymi zasadami
- w przypadku pustych danych wejściowych, oprócz 0, dopuszczalne są puste dane wyjściowe lub dowolne dane wyjściowe false-y w wybranym języku
- dla niepoprawnego wprowadzania (wprowadzania z użyciem czegoś innego niż samogłoski i powyższe spółgłosek), wynik jest niezdefiniowany - wszystko idzie
Przypadki testowe
"GucCi"
=> 74
"kakakaGo"
=> 4111
"aiKaCiigukoJe"
=> 913720
""
=> 0 //OR empty/falsey output
"a"
=> 0
"ukkiKagijeCaGaacoJiiKka"
=> 1964783210
"kegJugjugKeg"
=> 2891
"guṅKo"
=> 23
"Guñaaka"
=> 104
"juñiKoṅe"
=>5208
(ostatnie mogą być:
"gungKo"
=> 23
"Gunyaaka"
=> 104
"junyiKonge"
=>5208
jeśli wolisz.)
Obowiązują standardowe zasady we / wy i luki . Niech zwycięży najlepszy golfista!
ord(c)%47%10
daje unikalny indeks [0..9]
dla każdej spółgłoski. (Z ord("ṅ")=7749
i ord("ñ")=241
.)
aiaKaci
można wprowadzić? (3 wiodące samogłoski)