Maison >développement back-end >C++ >Une chaîne est-elle une rotation d'une autre ? Une approche simple en 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 :
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()) && ((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!