これが私のジレンマです。
たとえば、次の文字列があります。
"1 2 3 4 5 ..... 100" ですが、任意の長さにすることができます (通常は、4 桁の数字について話す、はるかに大きなもの)。
私がする必要があるのは、既知の位置に基づいて文字列の要素を再配置することです。例: 問題の位置は 70 です。次の出力が必要です: "70 71 ....100 1 2 3 ...69"
条件:
- 私は鍵を知っています:例えば上記の「70」。文字列の長さによっては、500、5000 の場合もあります。
- 文字列バッファまたは文字列管理関数を使用できません。
- 利用可能なメモリがほとんどまたはまったくありません。
- 2 つの 1 バイト バッファが利用可能です。
- 操作は可能な限り最小限の手順で実行する必要があります (タイム クリティカル)。
文字列内のキーの位置に依存しない優れたアルゴリズムを見つけようとしています。基本的に、自分の半分に応じて左/右にシフトすると、多くの読み取り/書き込みが可能になり、それは望ましくありません。
どうもありがとう!