程式設計師程式設計藝術 第一章左旋轉字串 C實現

2021-06-20 04:44:20 字數 936 閱讀 9925

題目描述:定義字串的左旋轉操作:把字串前面的若干個字元移動到字串的尾部,如把字串 abcdef 左旋轉 2 位得到字串 cdefab。請實現字串左旋轉的函式,要求對長度為 n 的字串操作的時間複雜度為 o(n),空間複雜度為 o(1)。

//first idea 暴力方式,時間複雜度(m*n)

//second idea 一次移動m個字元移動n/m次 時間複雜度(n)

/************************************

pclvmm

left_rang_string

2014-01-13 20:06

*************************************/

#include

#define len 10

#define get_array_len(array,len)

//first idea violence

//o(m*n)

void leftshiftone(char s, int n)

void leftshift_1(char s, int n, int m)

//second idea: use pointer one time translate numbers of m

//o(m*(n%m))

void leftshift_2(char s, int n, int m)

t = s + n -q;

for(i = 0; i < t; i++)

*(p + i) = *(q + i);

for(i = 0; i < m; i++)

*(p + t + i) = st[i];

}int main(int argc, int * argv)

演算法題002 程式設計師程式設計藝術第一章 左旋轉字串

定義字串的左旋轉操作 把字串前面的若干個 k個 字元移動到字串的尾部。如把字串abcdef左旋轉2位得到字串cdefab。請實現字串左旋轉的函式,要求對長度為n的字串操作的時間複雜度為o n 空間複雜度為o 1 如果採用每次將陣列中的元素移動一位,迴圈k次的方法,則時間複雜度為o k n 只需要額外...

第一章 程式設計師也是人

程式設計師也是人 哪個狗日的發明了計算機?自打計算機問世以來,尤其是個人計算機的普及以後,一種新興的行業產生了,程式設計師。它伴隨著所謂第三次產業革命,資訊產業革命,而產生。所以他總是被掛上了高薪,高科技的帽子,使得它越來越受到了更多年輕人的青睞。然而,從大學起盲目的選擇到現在,你是否已經後悔?目前...

程式設計師的自我修養(第一章)

記憶體不夠怎麼辦?首先實現的是分頁機制,即只在物理記憶體中儲存程序常用的資料,而其他的放在硬碟中。關於隔離 程序作為普通的執行程式,需要的是簡單的執行環境和單一的位址空間。這裡就出現了虛擬位址空間,然後統一由mmu記憶體管理單元進行統一對映,而這個管理單元是同頁表的方式進行對映的,這個頁表放在物理記...