Finden der (lexikographische) index, der eine permutation von einer gegebenen array.

Gegeben ein array sagen "bca", ich muss die Anzahl der Permutationen, die lexicographicaly die größer als die angegebene permutation.

So, in diesem Beispiel, cab, cba sind Permutationen, die größer sind. Somit wäre die Antwort 2.

Ich versuchte Annäherung an das problem durch das finden der lexikographischen ranking des Arrays, aber ich bin nicht in der Lage zu entwickeln, die ein effizienter Algorithmus für die sagen.

Jede Hilfe/Zeiger in die richtige Richtung dankbar!

  • Ist "bbb" eine gültige array?
  • Haben Sie versucht, eine backtracking-Methode?, es ist nicht wirklich effizient, aber es macht seinen job. Wenn Sie wollen, dass ich post code mir sagen.
  • Nein. die permutation gebildet werden müssen mit der gleichen Anzahl von literalen gemäß der üblichen definition
  • Nein, ich bin nicht bewusst, die backtracking-Methode. Können Sie bitte erklären, und die post-code? Danke!
  • Die Frage ist im wesentlichen, "Was ist ein effizienter Algorithmus, X zu tun?". Wie kann jemand beantworten, der ohne (pseudo) - code?
InformationsquelleAutor user1628340 | 2012-08-27
Schreibe einen Kommentar