2 Stimmen

Suche nach einer Zeichenkette in einer anderen Zeichenkette mithilfe des Rekursionsmechanismus in Core Java

Ich habe die folgende Problemstellung

PS: Bei einer Zeichenkette "str" und einer nicht leeren Teilzeichenkette "sub" wird "rekursiv" berechnet, ob mindestens "N" Kopien von "sub" irgendwo in der "Zeichenkette" vorkommen, möglicherweise mit "Überschneidungen". N wird nicht-negativ sein.

Example are as shown below
strCopies("catcowcat", "cat", 2) true
strCopies("catcowcat", "cow", 2) false
strCopies("catcowcat", "cow", 1) true
strCopies("iiijjj", "ii", 2) true

Ich habe den Code wie unten gezeigt geschrieben (ohne Rekursion) und funktioniert gut für einige Testfälle, außer für andere, die als FAIL markiert sind.

:::Der Code lautet wie folgt:::

public boolean strCopies(String str, String sub, int n) {    
    int len = sub.length();    
    int result=0;    
    if(len>0){    
       int start = str.indexOf(sub);    
       while(start !=-1){    
              result++;    
              start = str.indexOf(sub,start+len);                     
       }
    }          
   if(result==n){
        return true;
   }else return false; 
}

Der obige Code wird wie folgt ausgeführt (fett gedruckt sind fehlgeschlagene Testfälle)

Expected This Run
strCopies("catcowcat", "cat", 2) true true OK
strCopies("catcowcat", "cow", 2) false false OK
strCopies("catcowcat", "cow", 1) true true OK
strCopies("iiijjj", "ii", 2) true false FAIL
strCopies("iiiiij", "iii", 3) true false FAIL
strCopies("ijiiiiij", "iiii", 2) true false FAIL

Könnten Sie überprüfen und lassen Sie mich wissen, was mit dem Code für FAIL TEST CASES falsch ist? Im nicht in der Lage, die überlappenden Szenarien zu berücksichtigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X