Maison  >  Article  >  développement back-end  >  Une chaîne est-elle une rotation d’une autre ? Une approche simple en Java.

Une chaîne est-elle une rotation d’une autre ? Une approche simple en Java.

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-25 01:56:30568parcourir

Is a String a Rotation of Another? A Simple Approach in Java.

Comment déterminer si une chaîne est une rotation d'une autre

Lors des entretiens logiciels, les candidats peuvent être confrontés à des questions intrigantes comme celle-ci : étant donné deux chaînes s1 et s2, comment savoir si s1 est une variante rotée de s2 ?

Une chaîne subit une rotation lorsqu'elle est divisée en un point de pivotement et les deux moitiés sont rattachées dans l'ordre inverse. . Par exemple, "stackoverflow" pourrait être tourné pour devenir "tackoverflows" ou "ackoverflowst".

Une solution possible, proposée par la personne interrogée, consiste à trouver le préfixe le plus long de s2 qui est une sous-chaîne de s1. Ceci identifie le point de rotation. Une fois trouvé, s2 peut être divisé en deux sous-chaînes et vérifier si leur concaténation est égale à s1.

Cependant, l'intervieweur a demandé une solution plus simple. Considérez l'approche suivante :

  • Assurez-vous que s1 et s2 ont la même longueur.
  • Vérifiez si s2 existe en tant que sous-chaîne dans s1, ce qui est obtenu en concaténant s1 avec lui-même et en recherchant s2.

En Java, cette méthode peut être implémentée comme suit :

<code class="java">boolean isRotation(String s1,String s2) {
    return (s1.length() == s2.length()) &amp;&amp; ((s1+s1).indexOf(s2) != -1);
}</code>

En utilisant la concaténation de chaînes et la recherche, cette solution détermine efficacement si une chaîne est une version pivotée de un autre.

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