3043. Finden Sie die Länge des längsten gemeinsamen Präfixes
Schwierigkeit:Mittel
Themen:Array, Hash-Tabelle, String, Trie
Sie erhalten zwei Arrays mit positiven ganzen Zahlen arr1 und arr2.
Ein Präfix einer positiven Ganzzahl ist eine Ganzzahl, die aus einer oder mehreren ihrer Ziffern besteht, beginnend mit der Ziffer ganz links. Beispielsweise ist 123 ein Präfix der Ganzzahl 12345, während 234 nicht.
istEin gemeinsames Präfix zweier Ganzzahlen a und b ist eine Ganzzahl c, sodass c ein Präfix sowohl von a als auch von b ist. Beispielsweise haben 5655359 und 56554 ein gemeinsames Präfix 565, während 1223 und 43456 keinein gemeinsames Präfix haben.
Sie müssen die Länge des längsten gemeinsamen Präfixes zwischen allen Ganzzahlpaaren (x, y) ermitteln, sodass x zu arr1 und y zu arr2 gehört.
Gibt die Länge des längsten gemeinsamen Präfixes aller Paare zurück. Wenn zwischen ihnen kein gemeinsames Präfix vorhanden ist, geben Sie 0 zurück.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Hinweis:
Lösung:
Wir können ein HashSet verwenden, um die Präfixe aus einem Array zu speichern und dann im zweiten Array nach diesen Präfixen zu suchen.
Präfixe generieren: Generieren Sie für jede Zahl in arr1 und arr2 alle möglichen Präfixe. Ein Präfix besteht aus einer oder mehreren Ziffern, beginnend mit der Ziffer ganz links.
Präfixe von arr1 in einem Set speichern: Die Verwendung eines HashSets zum Speichern aller Präfixe von Zahlen in arr1 gewährleistet schnelle Suchvorgänge bei der Überprüfung von Präfixen von arr2.
Längstes gemeinsames Präfix finden: Generieren Sie für jede Zahl in arr2 ihre Präfixe und prüfen Sie, ob eines dieser Präfixe im HashSet aus Schritt 2 vorhanden ist. Verfolgen Sie das längste gefundene Präfix.
Die Länge des längsten gemeinsamen Präfixes zurückgeben: Wenn ein gemeinsames Präfix gefunden wird, wird dessen Länge zurückgegeben; andernfalls 0 zurückgeben.
Lassen Sie uns diese Lösung in PHP implementieren: 3043. Finden Sie die Länge des längsten gemeinsamen Präfixes
Erläuterung:
HashSet-Erstellung:
- Wir erstellen zunächst ein assoziatives Array $prefixSet, um alle möglichen Präfixe von Zahlen in arr1 zu speichern.
- Wir durchlaufen jede Zahl in arr1, konvertieren sie in einen String und extrahieren alle ihre Präfixe mit der Funktion substr. Jedes Präfix wird im $prefixSet.
gespeichertPräfixprüfung:
- Als nächstes durchlaufen wir jede Zahl in arr2 und wandeln sie ebenfalls in einen String um.
- Für jede Zahl in arr2 extrahieren wir erneut alle möglichen Präfixe.
- Wenn in $prefixSet ein Präfix vorhanden ist, prüfen wir, ob seine Länge größer als die aktuell gefundene maximale Länge ($maxLength) ist.
Ergebnis zurückgeben:
- Schließlich geben wir die Länge des längsten gefundenen gemeinsamen Präfixes zurück.
Komplexität:
Diese Lösung ist effizient und funktioniert gut innerhalb der vorgegebenen Einschränkungen.
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt vonErmitteln Sie die Länge des längsten gemeinsamen Präfixes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!