Ich mache einen URL-Shortener, und ich möchte für jede URL die kürzest mögliche Zeichenfolge verwenden. Jede URL hat ein anderes Ablaufdatum.Algorithmus zum Durchlaufen aller kürzesten Ketten?
Zum Beispiel, lassen Sie uns URLs einreichen, die der folgenden Liste verkürzt erhalten:
a, b, c, ..., z, 0 ..., 9, aa, ab, ac, ... a9, ba
Dann sagen c
abläuft, so dass die nächste URL sollte statt bb
zu c
verkürzt werden, da c
kürzer ist und wird nicht genommen.
Welche Datenstruktur wäre gut, um den Überblick zu behalten?
A PQ würde nicht funktionieren für eine beliebige Anzahl von Einträgen müsste es jedoch ein Limit geben. – Cisplatin
Nicht, dass ich weiß. Ein PQ ist [unbounded] (https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html), es sei denn, es ist programmatisch auf ein Limit gesetzt. – mohsenmadi
Sie haben tatsächlich recht, es gibt einen einfachen Weg dahin. Ein anderes Problem ist jedoch, dass, wenn eine große Anzahl von Elementen hinzugefügt wird, sie für immer in der PQ sind und viel Platz einnehmen. Ich schätze, ich konnte sie routinemäßig beseitigen. – Cisplatin