逆置字串之三步翻轉

2021-07-11 08:32:23 字數 737 閱讀 9031

對於逆置字串這個問題,想必大家都覺得很簡單,設定兩個下標指向字串頭尾,交換下標指向位置內容,左下標加,右下標減,直到下標相交。實現**也很簡單,不超過15行。

void reverse(char*left, char*right)                   

}

那麼看看這個類似的問題:將「you love i」變為「i love you」,假設用剛才的方法,得到的結果會是「i evol uoy」,這並不能滿足我們的目的。

對於這樣的問題,我們可以這樣解決,先利用字元空格將每個單詞逆置,再將整個字串逆置,或者先將整個字串逆置,再將每個單詞逆置,其實就是對字串進行了兩次不同方式的逆置。

實現一下**吧:

void reverse(char*left, char*right)                   //逆置字串

}void reverse_str(char*str, int len)

reverse(start, end - 1);

start = end + 1;

if (*end != '\0') //此處end!='\0' 則end==' '

++end;

}}

是不是很巧妙呢,嘿嘿!上述**只能處理字串"you love i",對於普遍情況,可設定迴圈進行處理,先將每個單詞逆置,再將整個字串逆置。

日常 演算法 旋轉字串 三步翻轉法

給定乙個字串,要求把字串前面的若干個字元移動到字串的尾部,如把字串 abcdef 前面的2個字元 a 和 b 移動到字串的尾部,使得原字串變成字串 cdefab 請寫乙個函式完成此功能,要求對長度為n的字串操作的時間複雜度為 o n 空間複雜度為 o 1 對於這個問題,換乙個角度思考一下。將乙個字串...

python字串逆置 字串逆置演算法

1,輸人 字串 123456 輸出 654321 注意 字元陣列不等於字串,只有當字元陣列結尾加上結束標誌 0 才是字串。所以字串用字元陣列來初始化時,結尾必須加上 0 比如 初始化字串 char ch 7 如下 include include include define maxsize 100 ...

字串逆置

題目描述 字串 i am a student 逆置為 student a am i 思路 第一次逆置 先將整個字串都逆置 tneduts a ma i 第二次逆置再將每個單詞逆置 student a am i 利用空格找出乙個單詞進行逆置 public class testdemo2 public ...