Tanım
Bir kelimenin sırası, harflerinin tüm olası permütasyonları (veya düzenlemeleri), bir sözlükteki gibi, kelimeler anlamlı olup olmadığına bakılmaksızın, alfabetik olarak düzenlendiğinde kelimenin konumu olarak tanımlanır.
Bu iki kelimeyi ele alalım - "mavi" ve "görülmüş". Öncelikle, bu kelimelerin harflerinin tüm olası düzenlemelerini alfabetik sıraya göre yazarız:
"blue": "belu","beul","bleu","blue","buel","bule","eblu","ebul","elub","elbu","eubl",
"eulb","lbeu","lbue","lebu","leub","lube","lueb","ubel","uble","uebl","uelb",
"ulbe","uleb"
"seen": "eens","eesn","enes","ense","esen","esne","nees","nese","nsee","seen",
"sene","snee"
Şimdi soldan bakalım ve ihtiyacımız olan kelimelerin konumunu bulalım. "Mavi" kelimesinin dördüncü sırada ve "görüldü" ifadesinin 10. konumda olduğunu görüyoruz. Yani "mavi" kelimesinin sırası 4 ve "görülen" sayısı 10'dur. Bu, bir kelimenin sıralamasını hesaplamanın genel yoludur. Yalnızca 1'den saymaya başladığınızdan emin olun.
Görev
Göreviniz herhangi bir kelimeyi girdi olarak almak ve sıralamasını görüntülemek için bir kod yazmaktır. Rütbe çıkışı olmalıdır. Tekrarlanan harfleri içeren kelimelere dikkat edin.
Örnekler
"prime" -> 94
"super" -> 93
"bless" -> 4
"speech" -> 354
"earth" -> 28
"a" -> 1
"abcd" -> 1
"baa" -> 3
Girişin tamamen küçük harf olduğunu varsayalım ve giriş sadece alfabetik karakterler içerecektir . Ayrıca, boşluk veya geçersiz bir dize girilirse, herhangi bir şey döndürebilirsiniz.
puanlama
Bu kod golf , yani en kısa kod kazanır!
O(n log n)
veya daha az sürede çalışırsa AC alırsınız . (üzgünüm, Python yok) Gönderim (C ++) 14 testini çözmek için 2.53 saniye sürüyor.
['h', 'e', 'l', 'l', 'o']
bunun yerine bir kelime listesi veya bir kelime yapabilir miyim 'hello'
?