に入れ替えましたカテゴリNSString
をの逆戻りの逆転のために逆の方法で逆転させました。私は正しい答えを得ている。しかし、もしこれが大丈夫なら、私はメモリ管理で分かりません。私はObjective-Cのメモリ管理についてよく知らない。NSStringを再帰的にカテゴリ
これ以外の効率的な方法は非常に賞賛に値するでしょう。ここで私は再帰でそれを実装していますので、
-(NSString *)reverseString{
if ([self length]<2) {
return self;
} else {
return [[[self substringFromIndex:1] reverseString] stringByAppendingString:[self substringToIndex:1]];
}
}
しかし、この質問はReverse NSString textではなく、重複と類似しています。そして、私は具体的にどのコード例でもないメモリ消費量について尋ねました。
長い文字列(数千文字)を反転しようとするとスタックオーバーフローが発生する可能性があります。そして、あなたのコードは、複数の文字としてエンコードされているUnicode文字を含む不正な文字列を生成します。 – rmaddy
正直なところ、この再帰的アルゴリズムを使用することはおそらく、文字列を逆転させる最も有用な方法の1つです。 Sanjitによってリンクされた複製は、このアルゴリズムよりはるかに優れたアプローチをしています。 – rmaddy
ただ楽しむために、絵文字を含む文字列を逆にしてみてください。書かれているように、スペースと所要時間はO(n^2)です。ここで、nは元の文字列の長さです。 100,000文字の文字列は、Macを膝に持っていくでしょう。 – gnasher729