Definition
Der Rang eines Wortes ist definiert als die Position des Wortes, wenn alle möglichen Permutationen (oder Anordnungen) seiner Buchstaben alphabetisch angeordnet sind, wie in einem Wörterbuch, unabhängig davon, ob die Wörter bedeutungsvoll sind oder nicht.
Betrachten wir diese beiden Wörter - "blau" und "gesehen". Zunächst würden wir alle möglichen Anordnungen der Buchstaben dieser Wörter in alphabetischer Reihenfolge schreiben:
"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"
Nun schauen wir von links und finden die Position der Wörter, die wir brauchen. Wir sehen, dass sich das Wort "blau" an der 4. Position und "gesehen" an der 10. Position befindet. Der Rang des Wortes "blau" ist also 4 und der des Wortes "gesehen" ist 10. Dies ist die allgemeine Methode zur Berechnung des Rangs eines Wortes. Stellen Sie sicher, dass Sie nur mit 1 anfangen zu zählen.
Aufgabe
Ihre Aufgabe ist es, einen Code zu schreiben, der ein beliebiges Wort als Eingabe aufnimmt und dessen Rang anzeigt. Der Rang sollte die Ausgabe sein. Seien Sie vorsichtig mit Wörtern, die wiederholte Buchstaben enthalten.
Beispiele
"prime" -> 94
"super" -> 93
"bless" -> 4
"speech" -> 354
"earth" -> 28
"a" -> 1
"abcd" -> 1
"baa" -> 3
Sie können davon ausgehen, dass die Eingabe vollständig in Kleinbuchstaben erfolgt und nur alphabetische Zeichen enthält . Auch wenn ein Leerzeichen oder eine ungültige Zeichenfolge eingegeben wird, können Sie alles zurückgeben.
Wertung
Das ist Code-Golf , also gewinnt der kürzeste Code!
O(n log n)
. (sorry, kein Python) Mein Beitrag (C ++) benötigt 2,53s, um Test 14 zu lösen.
['h', 'e', 'l', 'l', 'o']
im Gegensatz zu 'hello'
?