Liebesbrief String Rotation Unternehmen Testprogrammierung Fragenbasis Testfall bestanden, versteckter Testfall fehlgescJava

Java-Forum
Anonymous
 Liebesbrief String Rotation Unternehmen Testprogrammierung Fragenbasis Testfall bestanden, versteckter Testfall fehlgesc

Post by Anonymous »

Ich habe auf der Plattform mettl einen Test für die Einstellung eines Unternehmens durchgeführt.
Problemstellung:
Sie schreiben einen Liebesbrief an Ihren Freund. Bevor Ihr Freund es jedoch lesen kann, liest es jemand anderes und dreht die Zeichen jedes Wortes K-mal nach rechts. Finden Sie die Anzahl der Wörter, die auch nach dieser Buchstabenverschiebung gleich bleiben.
Hinweis: Zwischen den Wörtern können mehr als ein Leerzeichen stehen.
Eingabespezifikationen:
Eingabe1: Wortfolge
Eingabe2: K-Anzahl der Drehungen
Ausgabespezifikationen:
Ihre Funktion sollte die Anzahl der richtigen Wörter zurückgeben.
Beispiel 1:
Eingabe1: llohe ereth
Eingabe 2: 2
Ausgabe: 0
Erklärung: In Beispiel 1: „llohe ereth“ ist eine gedrehte Zeichenfolge mit K-Faktor 2. Daher erhalten wir nach dem Verschieben der letzten beiden Buchstaben von rechts nach links die ursprüngliche Zeichenfolge als „Hallo da“.
Beispiel 2:
Eingabe1: adaada
Eingabe 2: 3
Ausgabe: 1
Erklärung: In Beispiel 2 gibt „adaada“ bei dreimaliger Drehung „adaada“ zurück. Daher ist die Antwort 1.
Ich habe unten eine Lösung geschrieben, die die beiden oben genannten Basisfälle bestanden hat, aber bei versteckten Testfällen fehlgeschlagen ist (einschließlich Testfällen mit Zeitkomplexität). Nur ein Ecktestfall wurde bestanden, weil ich überprüft habe, dass String input1 nicht leer ist. Die Lösung lautet wie folgt:

Code: Select all

public int rotatedWords(String input1, int input2) {
int count = 0;
String arr[] = input1.split(" ");
if (input1 != null && !input1.isEmpty()) {
for (int i = 0; i < arr.length; i++) {
String s1 = arr[i] + arr[i];
int start = arr[i].length() - input2;

System.out.println("arr[i] : " + arr[i]);
String s2 = s1.substring(start, start + arr[i].length());
System.out.println("s2 : " + s2);
if (s2.equalsIgnoreCase(arr[i])) {
count++;
}
}
}
return count;
}
Die Frage ist, dass ich nicht verstehen konnte, warum die versteckten Testfälle fehlschlugen. Bitte helfen Sie mir.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post