Heim  >  Artikel  >  Backend-Entwicklung  >  Ist ein String eine Rotation eines anderen? Ein einfacher Ansatz in Java.

Ist ein String eine Rotation eines anderen? Ein einfacher Ansatz in Java.

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-25 01:56:30568Durchsuche

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

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:

  • Stellen Sie sicher, dass s1 und s2 die gleiche Länge haben.
  • Überprüfen Sie, ob s2 als Teilzeichenfolge in s1 vorhanden ist, was durch Verketten von s1 mit sich selbst und Suchen nach erreicht wird s2.

In Java kann diese Methode wie folgt implementiert werden:

<code class="java">boolean isRotation(String s1,String s2) {
    return (s1.length() == s2.length()) &amp;&amp; ((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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn