Você encontrou um antigo manuscrito indiano, que descreve montes de tesouros enterrados. O manuscrito também informa a localização do tesouro, exceto que alguns números cruciais foram codificados indiretamente no texto. Você descobre que o texto usa um sistema 'Kaadi', um subconjunto restrito do sistema 'Katapayadi' mais comum.
(O sistema Katapayadi é um sistema indiano antigo para codificar números como letras, frequentemente usado como mnemônica para lembrar números longos.)
Sua tarefa aqui é decodificar o texto codificado no sistema Kaadi e imprimir o valor numérico.
Detalhes
Caracteres de entrada
O sistema Kaadi é baseado nas regras do sistema Katapayadi , mas usa apenas a primeira linha de consoantes. Seu texto aqui foi transliterado para o alfabeto latino e é conhecido por conter apenas:
- vogais 'a', 'e', 'i', 'o', 'u'
- consoantes 'g', 'k', 'c', 'j' e suas formas de capital (para representar a forma aspirada dessas consoantes) e 'ṅ' e 'ñ'.
(Você pode optar por receber e manipular 'ṅ' como 'ng' e 'ñ' como 'ny' se for mais conveniente no seu idioma.)
Atribuição de valor
Neste sistema,
cada consoante quando seguida por uma vogal tem um dígito associado a ela. Esses são:
'k'=>1, 'K'=>2,
'g'=>3, 'G'=>4,
'ṅ'=>5,
'c'=>6, 'C'=>7,
'j'=>8, 'J'=>9,
'ñ'=>0
Observe, no entanto, que esses valores se aplicam somente quando essas consoantes são seguidas por uma vogal. kacCi
tem o mesmo valor que kaCi
( ka
, Ci
= (1,7)), pois o meio c não é acompanhado por uma vogal.
Além disso, uma vogal inicial ou sequência de duas vogais representa um 0.
aikaCi
seria:ai
,ka
,Ci
= (0,1,7)Vogais extras em qualquer outro lugar no meio do texto não têm valor:
kauCia
é o mesmo quekaCi
, as vogais extras podem ser ignoradas.
Valor numérico final
Uma vez calculados os valores dos dígitos das letras, o valor numérico final é obtido na ordem inversa desses dígitos, ou seja, o primeiro dígito do texto é o dígito menos significativo no valor final.
Por exemplo.
GucCi
tem Gu
e Ci
, então (4, 7), então o valor final é 74.
kakakaGo
é (1,1,1,4), então a resposta é 4111.
guṅKo
é (3,2), então codifica 23. ( gungKo
se estiver usando ASCII -equivalente.)
Entrada
- Uma sequência que contém um texto codificado por Kaadi
- conterá apenas vogais e as consoantes acima
- as vogais estão sempre em minúsculas e ocorrem em grupos de no máximo 2
- você pode aceitar as letras 5 e 0 como caracteres Unicode 'ṅ' e 'ñ' ou como seus equivalentes ASCII 'ng' e 'ny' (eles estão em minúsculas nos dois formatos)
- você pode assumir que não há espaços ou pontuações
Resultado
- O valor numérico do texto, conforme determinado pelas regras acima
- para entrada vazia, é aceitável uma saída vazia ou qualquer saída falsa no idioma de sua escolha, além de 0
- para entrada inválida (entrada com outra coisa que não vogais e consoantes acima), a saída é indefinida - tudo acontece
Casos de teste
"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
(os últimos podem ser:
"gungKo"
=> 23
"Gunyaaka"
=> 104
"junyiKonge"
=>5208
se você preferir.)
Aplicam-se regras padrão para E / S e brechas . Que ganhe o melhor jogador de golfe!
ord(c)%47%10
fornece um índice exclusivo [0..9]
para cada consoante. (Com ord("ṅ")=7749
e ord("ñ")=241
.)
aiaKaci
ser inserido? (3 vogais principais)