Als eine erste Überprüfung, da eine gültige Eingabe von der Einfügung der Zeichenfolge in sich selbst gemacht werden muss, es muss doppelt so groß sein wie die Zeichenfolge S.So finden Sie, ob ein String S in einem String aus S an einer beliebigen Position in S (nur einmal) selbst enthalten ist
Eg. Wenn S = abc, dann sollte ababca oder aabcbc für die Eingabe wie abcab, abcxa, abcabcabc True aber False zurückgeben.
Ich habe bereits versucht, die naive Art der Teilstring zu überprüfen, wenn es existiert dann schneiden Sie diesen Teil aus und überprüfen Sie, ob die verbleibende Zeichenfolge mit S übereinstimmt. Aber dies schlägt für einige Arten von Eingaben fehl.
private static void printResult(String s, String p){
int x = p.indexOf(s);
if(x<0){
System.out.println("False");
return;
}
String s1="";
if(p.length()>=s.length()*2){
s1 = p.substring(0,x)+p.substring(x+s.length());
if(s1.equals(s)){
System.out.println("True");
}
else{
System.out.println("False");
}
return;
}
System.out.println("False");
}
Für welche Eingänge schlägt es fehl? Zeigen Sie uns den Code und die Beispiele. –
Der Testcode wurde hinzugefügt –