Ich machte diese Kategorie zum Reversieren einer NSString
in einer rekursiven Weise. Ich bekomme die richtige Antwort. Aber ich bin mir nicht sicher, ob dies in Ordnung ist mit Speicherverwaltung. Ich weiß nicht viel über Speicherverwaltung in Objective-C.Reverse NSString rekursiv in der Kategorie
Jeder andere effiziente Weg wäre sehr bewundernswert.
-(NSString *)reverseString{
if ([self length]<2) {
return self;
} else {
return [[[self substringFromIndex:1] reverseString] stringByAppendingString:[self substringToIndex:1]];
}
}
Doch diese Frage ist ähnlich wie Reverse NSString text aber nicht das Duplikat, weil ich hier mit Rekursion bin Umsetzung. Und ich habe speziell nach dem Speicherverbrauch gefragt, nicht nach einem Codebeispiel.
Sie werden wahrscheinlich einen Stapelüberlauf verursachen, der versucht, eine lange Zeichenfolge umzukehren (Tausende von Buchstaben). Und Ihr Code erzeugt eine fehlerhafte Zeichenfolge mit Unicode-Zeichen, die als mehr als ein Zeichen codiert sind. – rmaddy
Ehrlich gesagt, ist die Verwendung dieses rekursiven Algorithmus wahrscheinlich eine der am wenigsten nützlichen Möglichkeiten, eine Zeichenkette umzukehren. Das von Sanjit verknüpfte Duplikat hat viel bessere Ansätze als dieser Algorithmus. – rmaddy
Versuchen Sie nur zum Spaß, eine Zeichenfolge umzukehren, die ein Emoji enthält. Wie geschrieben, sind die Raum- und Zeitanforderungen O (n^2), wobei n die Länge der ursprünglichen Zeichenkette ist. Eine Folge von 100.000 Zeichen bringt einen Mac in die Knie. – gnasher729