So ermitteln Sie, ob eine Zeichenfolge eine Rotation einer anderen ist
In Software-Interviews können Kandidaten auf interessante Fragen wie diese stoßen: gegeben zwei Zeichenfolgen s1 und s2, wie stellen Sie fest, ob s1 eine gedrehte Variante von s2 ist?
Eine Saite wird gedreht, wenn sie an einem Drehpunkt geteilt wurde und die beiden Hälften in umgekehrter Reihenfolge wieder zusammengefügt werden . Beispielsweise könnte „stackoverflow“ in „tackoverflows“ oder „ackoverflowst“ umgewandelt werden.
Eine vom Befragten vorgeschlagene mögliche Lösung besteht darin, das längste Präfix von s2 zu finden, das ein Teilstring von s1 ist. Dies identifiziert den Rotationspunkt. Sobald s2 gefunden wurde, kann es in zwei Teilzeichenfolgen unterteilt und überprüft werden, ob deren Verkettung gleich s1 ist.
Der Interviewer forderte jedoch eine einfachere Lösung. Betrachten Sie den folgenden Ansatz:
In Java kann diese Methode wie folgt implementiert werden:
<code class="java">boolean isRotation(String s1,String s2) { return (s1.length() == s2.length()) && ((s1+s1).indexOf(s2) != -1); }</code>
Durch die Verwendung von Zeichenfolgenverkettung und -suche ermittelt diese Lösung effizient, ob eine Zeichenfolge eine gedrehte Version von ist ein anderer.
Das obige ist der detaillierte Inhalt vonIst ein String eine Rotation eines anderen? Ein einfacher Ansatz in Java.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!