564. Finden Sie das nächstgelegene Palindrom
Schwierigkeit:Schwer
Themen:Mathe, String
Gegeben sei eine Zeichenfolge n, die eine Ganzzahl darstellt, gib _die nächstgelegene Ganzzahl (ohne sich selbst) zurück, bei der es sich um ein Palindrom handelt. Wenn es einen Gleichstand gibt, geben Sie den kleineren zurück.
Der nächste Wert ist definiert als die minimale absolute Differenz zwischen zwei ganzen Zahlen.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Hinweis:
Lösung:
Wir konzentrieren uns auf die Erstellung einer Funktion, die potenzielle Palindromkandidaten generiert und dann denjenigen auswählt, der der Eingabenummer am nächsten kommt.
Palindrom-Kandidaten identifizieren:
Berechnen Sie das nächstgelegene Palindrom:
Lassen Sie uns diese Lösung in PHP implementieren: 564. Finden Sie das nächstgelegene Palindrom
<?php /** * @param String $n * @return String */ function nearestPalindromic($n) { ... ... ... /** * go to https://github.com/mah-shamim/leet-code-in-php/tree/main/algorithms/000564-find-the-closest-palindrome/solution.php */ } function generatePalindrome($firstHalf, $isOddLength) { ... ... ... } // Example usage echo nearestPalindromic("123"); // Output: "121" echo nearestPalindromic("1"); // Output: "0" ?> <h3> Erläuterung: </h3> <ul> <li> <strong>generatePalindrome($firstHalf, $isOddLength)</strong>: <ul> <li>Diese Hilfsfunktion erstellt ein Palindrom, indem sie die erste Hälfte der Zahl spiegelt. </li> </ul> </li> </ul> <pre class="brush:php;toolbar:false"><?php /** * @param $firstHalf * @param $isOddLength * @return string */ function generatePalindrome($firstHalf, $isOddLength) { $secondHalf = strrev(substr($firstHalf, 0, $isOddLength ? -1 : $firstHalf)); return $firstHalf . $secondHalf; } ?>
Edge Cases:
Hauptlogik:
Diese Lösung schränkt mögliche Palindrom-Kandidaten effizient ein und wählt den nächstgelegenen aus, indem sie nur wenige Optionen berücksichtigt, was sie viel schneller macht als Brute-Force-Ansätze.
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 von. Finden Sie das nächstgelegene Palindrom. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!