實現乙個函式,可以左旋字串中的k個字元
例如:aabcd左旋乙個字元得到abcda
aabcd左旋兩個字元得到bcdaa
方法(1):採用迴圈移位,對需要旋轉的k個字元按順序進行旋轉,先將要旋轉的乙個字元儲存起來,將後面的往前挪動一位,再將儲存起來的這個字元賦給最後一位,這樣連續迴圈k次,就可以完成了。**實現如下:
#include#include#includevoid left_move(char *p, int n)
p[len - 1] = tmp; }}
int main()
方法(2) 三步旋轉法,先將要旋轉的k個字串逆序,再將剩餘的字串逆序,最後再對整個字串逆序就得到了旋轉k個字元後的字串。**實現如下:
#include#include#includevoid reverse(char *left, char *right)
}void left_move(char *p, int n)
int main()
分析上面兩個方法,方法(1)中至少要迴圈n*(len-1)次,效率比較低,方法(2)的效率更高一點。
本文出自 「stand out or get out」 部落格,請務必保留此出處
習題 實現乙個函式,可以左旋字串中的k個字元
c語言 實現乙個函式,可以左旋字串中的k個字元。例如 abcd左旋乙個字元得到bcda abcd左旋兩個字元得到cdab 思路一 常規思路很簡單,很容易想出來,以左旋乙個字元為例,建立乙個變數tmp將字串的第乙個字元賦給tmp,然後將字串所有的字元往前移一位比如移動之前是abcd,移動之後就是bcd...
實現乙個函式,可以左旋字串中的k個字元
實現乙個函式,可以左旋字串中的k個字元。aabcd左旋乙個字元得到abcda aabcd左旋兩個字元得到bcdaa 1 可以通過字串互換,每左旋一次,字串第乙個移到最後乙個,其餘字元整體向前移動一位。如下 include include includevoid reverse char str,in...
實現乙個函式,可以左旋字串中的k個字元
實現乙個函式,可以左旋字串中的k個字元。aabcd左旋乙個字元得到abcda aabcd左旋兩個字元得到bcdaa 在c語言中,實現字串旋轉的方法有很多,今天我給大家介紹較為常見的三種實現方法,他們的時間複雜度還是有較大的差別,空間的占用也不盡相同,所以大家在以後的使用中按要求來選擇實現的方法。方法...