564. Trouvez le palindrome le plus proche
Difficulté : Difficile
Sujets : Mathématiques, Chaîne
Étant donné une chaîne n représentant un entier, renvoie _l'entier le plus proche (sans lui-même), qui est un palindrome-. S'il y a égalité, retournez le plus petit.
Le plus proche est défini comme la différence absolue minimisée entre deux entiers.
Exemple 1 :
Exemple 2 :
Contraintes :
Indice :
Solution :
Nous nous concentrerons sur la création d'une fonction qui génère des candidats palindromes potentiels, puis sélectionne celui le plus proche du nombre saisi.
Identifier les candidats au Palindrome :
Calculer le palindrome le plus proche :
Implémentons cette solution en PHP : 564. Trouvez le palindrome le plus proche
<?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> Explication: </h3> <ul> <li> <strong>générer Palindrome($firstHalf, $isOddLength)</strong> : <ul> <li>Cette fonction d'assistance crée un palindrome en reflétant la première moitié du nombre. </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; } ?>
Cas Edge :
Logique principale :
Cette solution réduit efficacement les candidats palindromes possibles et sélectionne le plus proche en ne considérant que quelques options, ce qui la rend beaucoup plus rapide que les approches par force brute.
Liens de contact
Si vous avez trouvé cette série utile, pensez à donner une étoile au référentiel sur GitHub ou à partager la publication sur vos réseaux sociaux préférés ?. Votre soutien signifierait beaucoup pour moi !
Si vous souhaitez du contenu plus utile comme celui-ci, n'hésitez pas à me suivre :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!