字串的旋轉

2021-08-08 01:28:41 字數 890 閱讀 9220

問題描述:

給定乙個字串,要求將字串前面的若干個字元移動到字串尾部

例:將abcdef前3個字元 a b c移到字串尾部,原字串變成defabc

解法一(暴力移位):

void leftshiftone(char *s,int n)

s[n-1] = t;//移到最後一位

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

}int main()

解法二(三步反轉):
void reversestring(char *str,int from,int to)

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

int main()

實戰:

反轉英文句子 eg:i am a student. 輸出 :student. a am i

先反轉整個句子 .tneduts a ma i

從前往後每個單詞反轉 student. a am i

void reverse(char *arr,int left,int right)

}void reverseworld(char *str,int n)

if(str[right] == ' ')

else

}}int main()

{ char

str = "i am a student.";

int n = strlen(str);

reverseworld(str,n);

cout<<高階演算法…

字串 字串的旋轉

時間複雜度為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 ab...

字串旋轉

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

字串旋轉

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