Vérification de rotation avec concaténation de chaînes
Lors des entretiens de développement logiciel, les candidats sont souvent confrontés à des questions complexes qui testent leurs compétences en résolution de problèmes. L'un de ces défis consiste à déterminer si une chaîne est une version pivotée d'une autre.
Considérez la question d'entretien suivante :
Question :
Étant donné deux chaînes , s1 et s2, comment déterminer si s1 est une version pivotée de s2 ?
Exemple :
Auparavant, une personne interrogée a proposé une solution qui impliquait de trouver le point de rotation et concaténation de sous-chaînes divisées. Cependant, l'intervieweur a demandé une approche plus simple.
Solution optimale :
Une solution plus efficace utilise la concaténation de chaînes. Il vérifie si s2 est une sous-chaîne de s1 concaténée avec elle-même. Cela garantit que toutes les rotations possibles sont prises en compte.
Pseudocode :
algorithm checkRotation(string s1, string s2) if( len(s1) != len(s2)) return false if( substring(s2,concat(s1,s1)) return true return false end
Implémentation Java :
<code class="java">boolean isRotation(String s1,String s2) { return (s1.length() == s2.length()) && ((s1+s1).indexOf(s2) != -1); }</code>
Cet algorithme offre un moyen simple et efficace de déterminer si une chaîne est une rotation d'une autre, répondant ainsi à la demande de l'intervieweur d'une solution plus simple.
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!