C 左旋轉字串

2021-08-20 04:38:19 字數 1265 閱讀 8908

問題描述

定義字串的左旋轉操作:把字串前面的若干個字元移動到字串的尾部,如把字串"abcd"左旋轉 2 位得到字串"cdab",請實現字串左旋轉的函式。

演算法分析

1.暴力移位法

a、把最後乙個字元取出並儲存起來,然後z最後乙個字元前面的所有字元後移,

b、儲存的最後乙個字元存放到第乙個字元的位置,

c、然後依次執行第一步和第二步,直到移動完需要移動的字元數為止。

void leftloopmove(char * str, unsigned short steps)

*str = tmp;

} return;

}

2.三步翻轉法

a、逆置翻轉字元的左邊;

b、逆置翻轉字元的右邊;

c、逆置整個字串。

/*

* 函式名稱:reversestr

** 函式功能:逆置

** 入口引數:left, right

** 出口引數:void

** 返回型別:void

*/void reversestr(char * left, char * right)

return;}/*

* 函式名稱:leftloopmove

** 函式功能:左旋

** 入口引數:str, steps

** 出口引數:void

** 返回型別:void

*/void leftloopmove(char * str, unsigned short steps)

主函式

#define _crt_secure_no_warnings 1/**

* 檔名稱:leftloopmove.c

* 功能:實現乙個函式,可以左旋字串中的k個字元。

* abcd左旋乙個字元得到bcda

* abcd左旋兩個字元得到cdab

** 當前版本:v1.0

* 完成日期:2023年4月16日14:36:11

*/# include # include # include int main(void)

輸出結果

左旋轉字串

題目 定義字串的左旋轉操作 把字串前面的若干個字元移動到字串的尾部。如把字串abcdef左旋轉2位得到字串cdefab。請實現字串左旋轉的函式。要求時間對長度為n的字串操作的複雜度為o n 輔助記憶體為o 1 思想 旋轉三次 include include using namespace std v...

左旋轉字串

package com.string 旋轉字串 q 26 左旋轉字串 題目 定義字串的左旋轉操作 把字串前面的若干個字元移動到字串的尾部。如把字串abcdef左旋轉2位得到字串cdefab。請實現字串左旋轉的函式。要求時間對長度為n的字串操作的複雜度為o n 輔助記憶體為o 1 public cla...

左旋轉字串

如abc,左旋1得到bca,左旋2得到cab o n k 的演算法 include using namespace std include include include include include include include include include include int main...