Definisi
Pangkat kata didefinisikan sebagai posisi kata ketika semua kemungkinan permutasi (atau pengaturan) huruf-hurufnya diatur secara alfabet, seperti dalam kamus, tidak peduli apakah kata-katanya bermakna atau tidak.
Mari kita perhatikan dua kata ini - "biru" dan "terlihat". Untuk memulainya, kami akan menulis semua susunan huruf yang mungkin dari kata-kata ini dalam urutan abjad:
"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"
Sekarang mari kita lihat dari kiri dan temukan posisi kata-kata yang kita butuhkan. Kita melihat bahwa kata "biru" berada di posisi ke-4 dan "terlihat" berada di posisi ke-10. Jadi pangkat kata "biru" adalah 4, dan "terlihat" adalah 10. Ini adalah cara umum untuk menghitung pangkat kata. Pastikan Anda mulai menghitung dari 1 saja.
Tugas
Tugas Anda adalah menulis kode untuk mengambil kata apa pun sebagai input dan menampilkan peringkatnya. Pangkat harus menjadi output. Hati-hati dengan kata-kata yang mengandung huruf berulang.
Contohnya
"prime" -> 94
"super" -> 93
"bless" -> 4
"speech" -> 354
"earth" -> 28
"a" -> 1
"abcd" -> 1
"baa" -> 3
Anda dapat menganggap input sepenuhnya dalam huruf kecil dan input hanya akan berisi karakter alfabet . Juga jika ruang kosong atau string tidak valid dimasukkan, Anda dapat mengembalikan apa pun.
Mencetak gol
Ini adalah kode-golf , jadi kode terpendek menang!
O(n log n)
atau kurang. (maaf, tidak ada Python) Kiriman saya (C ++) membutuhkan 2,53 untuk menyelesaikan tes 14.
['h', 'e', 'l', 'l', 'o']
sebagai lawan 'hello'
?