Beim bearbeiten folgender Aufgabe komme ich einfach nicht weiter, könnte mir jemand einen Tipp geben wie ich die Probleme realisiere Danke im Voraus.
Kommen wir zuerst zur Aufgabenstellung: Es werden über die Tastatur zwei Zeichenketten eingelesen. Die erste Zeichenkette entspricht dem Originalstring. Für die zweite Zeichenketten soll Ihr Programm nun ausgeben, ob sie durch ein zyklisches Verschieben des Originalstring zustande kommen kann und falls ja, um wie viele Zeichen dieser (nach rechts) verschoben werden müsste. Kann die zweite Zeichenkette durch ein zyklisches Verschieben des Originalstrings erzeugt werden, so soll das Programm ausgeben, um wie viele Zeichen (nach rechts) verschoben werden muss, damit aus der zweiten Zeichenkette der Originalstring entsteht.
Kann die zweite Zeichenkette nicht durch ein zyklisches Verschieben des Originalstrings erzeugt werden, so soll das Programm den Wert -1 ausgeben.
Nun zu meinem Problem:
Wir haben eine Testumgebung von der Uni bekommen, in welcher 5 Tests ausgeführt werden. 3 dieser 5 Tests leuchten bei meinem Programm grün, soweit so gut. Jedoch sind immer noch 2 Tests rot und mir fällt einfach nicht ein wie ich das implementieren könnte
Beim ersten Test werden zwei Strings eingelesen, welche nicht abbildbar sind. Der Test erwartet hier eine -1 als Ausgabe.
Beim zweiten Test werden zwei Strings eingelesen, welche nicht verschoben wurden somit gleich sind.(Habs mal probiert aber mein Ansatz ist scheinbar ein Schuss in den Ofen)
Kommen wir zuerst zur Aufgabenstellung: Es werden über die Tastatur zwei Zeichenketten eingelesen. Die erste Zeichenkette entspricht dem Originalstring. Für die zweite Zeichenketten soll Ihr Programm nun ausgeben, ob sie durch ein zyklisches Verschieben des Originalstring zustande kommen kann und falls ja, um wie viele Zeichen dieser (nach rechts) verschoben werden müsste. Kann die zweite Zeichenkette durch ein zyklisches Verschieben des Originalstrings erzeugt werden, so soll das Programm ausgeben, um wie viele Zeichen (nach rechts) verschoben werden muss, damit aus der zweiten Zeichenkette der Originalstring entsteht.
Kann die zweite Zeichenkette nicht durch ein zyklisches Verschieben des Originalstrings erzeugt werden, so soll das Programm den Wert -1 ausgeben.
Nun zu meinem Problem:
Wir haben eine Testumgebung von der Uni bekommen, in welcher 5 Tests ausgeführt werden. 3 dieser 5 Tests leuchten bei meinem Programm grün, soweit so gut. Jedoch sind immer noch 2 Tests rot und mir fällt einfach nicht ein wie ich das implementieren könnte
Beim ersten Test werden zwei Strings eingelesen, welche nicht abbildbar sind. Der Test erwartet hier eine -1 als Ausgabe.
Beim zweiten Test werden zwei Strings eingelesen, welche nicht verschoben wurden somit gleich sind.(Habs mal probiert aber mein Ansatz ist scheinbar ein Schuss in den Ofen)
Java:
//import java.io.*;
import java.util.Scanner;
public class Zyklisch {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String Str1 = sc.next();
String Str2 = sc.next();
int index = (Str1 + Str1).indexOf(Str2);
if(Str1 == Str2){
System.out.println(0);
}
if(Str1.length() != Str2.length()) {
System.out.println(-1);
}
if (Str1.length() == Str2.length() && index > -1) {
int offset= (Str1.length() - index) % Str1.length();
System.out.println(offset);
}
sc.close();
}
}