Eski bir Hint el yazmasıyla karşılaştınız, gömülü hazinenin höyüklerini tanımlayan. Makale ayrıca, bazı önemli sayıların metne dolaylı olarak kodlanması dışında, hazinenin yerini de anlatır. Metnin daha yaygın 'Katapayadi' sisteminin sınırlı bir alt kümesi olan bir 'Kaadi' sistemi kullandığını anlıyorsunuz.
( Katapayadi sistemi, sayıları harf olarak kodlayan, genellikle uzun sayıları hatırlamak için anımsatıcılar olarak kullanılan eski bir Hint sistemidir.)
Buradaki göreviniz Kaadi sisteminde kodlanan metnin kodunu çözmek ve sayısal değeri yazdırmaktır.
ayrıntılar
Giriş karakterleri
Kaadi sistemi Katapayadi sisteminin kurallarına dayanır , ancak sadece ünsüzlerin ilk sırasını kullanır. Buradaki metniniz Latin alfabesine çevrildi ve yalnızca içerdiği biliniyor:
- sesli harfleri 'a', 'e', 'i', 'o', 'u'
- ünsüzler 'g', 'k', 'c', 'j' ve bunların sermaye formları ( bu ünsüzlerin emişli biçimini temsil etmek için ) ve 'ṅ' ve 'ñ'.
(Eğer dilinizde daha uygunsa 'ṅ' ve 'ng' ve 'ñ' almayı 'ny' olarak almayı seçebilirsiniz.)
Değer atama
Bu sistemde,
her ünsüzün ardından bir sesli harf onunla ilişkili bir rakam içerir. Bunlar:
'k'=>1, 'K'=>2,
'g'=>3, 'G'=>4,
'ṅ'=>5,
'c'=>6, 'C'=>7,
'j'=>8, 'J'=>9,
'ñ'=>0
Ancak, bu değerlerin yalnızca bu ünsüzleri bir sesli harf izlediğinde geçerli olduğunu unutmayın. orta c'nin bir sesli harfle eşlik etmediği için ( , = (1,7)) ile kacCi
aynı değere sahiptir . kaCi
ka
Ci
Buna ek olarak, iki sesli bir ilk sesli harf veya bir dizi 0 temsil
aikaCi
olacaktır:ai
,ka
,Ci
= (0,1,7)Metnin ortasında bir yerde Ekstra ünlüler değeri yoktur:
kauCia
aynıdırkaCi
, ekstra ünlüler göz ardı edilebilir.
Nihai sayısal değer
Harflerin basamak değerleri çözüldükten sonra, son sayısal değer, bu basamakların ters sırası olarak elde edilir, yani metindeki ilk basamak, son değerdeki en küçük basamaktır.
Örneğin.
GucCi
yer alır Gu
ve Ci
bu yüzden son değeri 74 olacak şekilde (4, 7),
kakakaGo
bir cevap 4111. yani, (1,1,1,4) olan
guṅKo
bir (3,2), yani (23. kodlayan gungKo
ASCII kullanılıyorsa -eşdeğer.)
Giriş
- Kaadi kodlu bir metin içeren bir dize
- yalnızca sesli harfleri ve yukarıdaki ünsüzleri içerecektir
- ünlüler her zaman küçük harflidir ve 2'den fazla olmayan gruplar halinde oluşur
- 5 ve 0 harflerini Unicode karakterleri 'ṅ' ve 'ñ' veya ASCII eşdeğerleri 'ng' ve 'ny' olarak kabul etmeyi seçebilirsiniz (her iki biçimde de küçük harflerle yazılır)
- boşluk veya noktalama işareti olmadığını varsayabilirsiniz.
Çıktı
- Yukarıdaki kurallarda verildiği gibi metnin sayısal değeri
- boş girdi için boş bir çıktı veya seçtiğiniz dilde herhangi bir yanlış y çıktısı 0'a ek olarak kabul edilebilir
- geçersiz giriş için (sesli harfler ve yukarıdaki ünsüzler dışında herhangi bir şeyle giriş), çıktı tanımsız - her şey gidiyor
Test senaryoları
"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
(sonuncusu şunlar olabilir:
"gungKo"
=> 23
"Gunyaaka"
=> 104
"junyiKonge"
=>5208
bunu tercih ederseniz.)
G / Ç ve boşluklar için standart kurallar geçerlidir. En iyi golfçü kazanabilir!
ord(c)%47%10
benzersiz bir dizin verir [0..9]
. (İle ord("ṅ")=7749
ve ord("ñ")=241
.)
aiaKaci
mi? (3 önde gelen ünlü)