Maison >Java >javaDidacticiel >Leetcode – Top Interview –. Palindrome valide

Leetcode – Top Interview –. Palindrome valide

DDD
DDDoriginal
2024-11-14 13:00:02498parcourir

Leetcode — Top Interview –. Valid Palindrome

C'est un problème simple avec une description :

Une phrase est un palindrome si, après avoir converti toutes les lettres majuscules en lettres minuscules et supprimé tous les caractères non alphanumériques, elle lit la même chose en avant et en arrière. Les caractères alphanumériques comprennent des lettres et des chiffres.

Étant donné une chaîne s, renvoie true s'il s'agit d'un palindrome, ou false sinon.

Exemple 1 :

Entrée : s = "Un homme, un plan, un canal : Panama"
Sortie : vrai
Explication : "amanaplanacanalpanama" est un palindrome.

Exemple 2 :

Entrée : s = "faire la course avec une voiture"
Sortie : faux
Explication : "raceacar" n'est pas un palindrome.

Exemple 3 :

Entrée : s = " "
Sortie : vrai
Explication : s est une chaîne vide "" après suppression des caractères non alphanumériques.
Puisqu'une chaîne vide lit la même chose en avant et en arrière, c'est un palindrome.

Contraintes :

1 <= s.length <= 2 * 105

s se compose uniquement de caractères ASCII imprimables.

En suivant ce qu'est un palindrome, vous supprimez essentiellement tous les non-alpha, puis appelez la méthode pour réduire la casse et effectuez un retour pour comparer.

En utilisant des méthodes et un peu d'exp reg, vous pouvez résoudre ce problème en 3 lignes :

class Solution {
    public boolean isPalindrome(String s) {
        final String reduced = s.replaceAll("[^A-Za-z0-9]", "").toLowerCase();
        final String inverted = new StringBuilder(reduced).reverse().toString();
        return reduced.equals(inverted);
    }
}

Durée d'exécution : 15 ms, plus rapide que 22,51 % des soumissions en ligne Java pour Valid Palindrome.

Utilisation de la mémoire : 44,8 Mo, soit moins de 34,15 % des soumissions en ligne Java pour Valid Palindrome.

Cela devrait suffire comme question simple et facile, mais pour avoir de meilleures performances, vous pouvez itérer et vérifier chaque caractère et supprimer et adapter si nécessaire, pour ce cas, consultez la réponse de Saksham sur leetcode (si vous souhaitez que je vous explique en détails , veuillez commenter ci-dessous).

C'est ça ! S'il y a autre chose à discuter, n'hésitez pas à laisser un commentaire, si j'ai raté quelque chose, faites-le-moi savoir afin que je puisse mettre à jour en conséquence.

À la prochaine publication ! :)

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn