例を使用して、私の質問をより詳細に説明しましょう。
与えられた文字列:
「類韻とは、いくつかの連続した単語の最初に同じ母音が繰り返されることです」
reiterationである 4 番目の単語を2 番目の単語の位置に移動する場合、文字列は次のようになります。
「類韻反復は、いくつかの連続する単語の先頭にある同じ母音のことです」
C
次のようにプロトタイプ化された関数が与えられた場合:
void move(char *s, int word_begin_ind, int word_end_ind, int target_begin_ind)
仕事をするためにこの機能を実装する方法は?
上記の例では、word_begin_ind = 17, word_end_ind = 27, target_begin_ind = 10
これは宿題ではありません。実は面接の質問です。私はアルゴリズムを持っています。基本的な考え方は次のようなものです。
word_begin_ind
(1) と を使用してターゲット単語のコピーを作成しますword_end_ind
。
(2) からtarget_begin_ind
までword_begin_ind - 1
、すべての文字を正しい位置に移動します。たとえば、word_begin_ind-1
「word_end_ind」、word_begin_ind-2
「word_end_ind-1」などに移動します。
(3) 最後に、コピーを正しい位置 (target_begin_ind から開始) に移動します。
私が求めていることを誰もが理解できることを願っています。
この作業を行うために c を使用する必要はありません。C++も歓迎です。
他の解決策を見つけるのを手伝ってくれる人はいますか?