字串 字串的旋轉

2021-07-23 04:51:07 字數 624 閱讀 7775

時間複雜度為o(m*n),空間複雜度為o(1)

#include #include #include void leftshiftone(char *str,int n)

}void leftrotatestring(char *str,int n,int m)

int main()

輸出:before rotate abcdefg

after rotate defgabc

思路:從後往前搜尋,搜尋到空格就將這一區間的字串反轉,最後將全部字串反轉

#include #include #include void reverse(char *str,int from,int to)

}void rotatestring(char *str,int n)

from--;

} if(from == 0)

reverse(str,from+1,to);

} reverse(str,0,n-1);

}int main()

輸出:

i am a student.

student. a am i

左旋轉字串(字串)

題目描述 組合語言中有一種移位指令叫做迴圈左移 rol 現在有個簡單的任務,就是用字串模擬這個指令的運算結果。對於乙個給定的字串行s,請你把其迴圈左移k位後的序列輸出。例如,字串行s abcxyzdef 要求輸出迴圈左移3位後的結果,即 xyzdefabc 是不是很簡單?ok,搞定它!思路一 pub...

字串旋轉

問題 把字串前面的若干個字元移動到字串的尾部。如把字串abcdef前2位字元移到後面得到字串cdefab。要求時間對長度為n的字串操作的複雜度為o n 輔助記憶體為o 1 看到大多數的帖子都是進行三次旋轉 如 個人感覺這思路確實比較新穎,但是總感覺有點麻煩了,個人思路如下 include inclu...

字串旋轉

字串的左旋轉操作 把字串前面的若干個字元移動到字串的尾部。例如 aabcd左旋乙個字元得到abcda aabcd左旋兩個字元得到bcdaa 同理字串右旋操作 aabcd右旋乙個字元得到daabc aabcd右旋兩個字元得到cdaab 那麼今天就來說一下字串旋轉中的一些問題 首先說一下簡單的,先用函式...