C語言字串的旋轉

2021-10-06 23:38:43 字數 1360 閱讀 8699

1.字串的任意次數左旋轉

方法1.(時間複雜度o(n^2))

#include

#include

#include

#pragma warning(disable:4996)

void

rotate

(char

*arr,

int len,

int num)

arr[len -1]

= a;

//再將首字元放到字串的尾

num--;}

}int

main()

方法二:時間複雜度o(n)

如字串abcdef左旋三次

可將前三個字元abc 逆置 cba

再將後三個字元def逆置 fed

逆置後字串為cbafed

再整體逆置,字串為defabc

左旋三次成功

#include

#include

#include

#pragma warning(disable:4996)

//abc def

//defabc

//cba fed

//defabc

introtate

(char

*arr,

int start,

int end )

}void

leftrotate

(char

*arr,

int len,

int num)

intmain()

練習

寫乙個函式,判斷乙個字串是否為另外乙個字串旋轉之後的字串。

例如:給定s1 =aabcd和s2 = bcdaa,返回1

給定s1=abcd和s2=acbd,返回0.

aabcd左旋乙個字元得到abcda

aabcd左旋兩個字元得到bcdaa

aabcd右旋乙個字元得到daabc

使用上面兩個方法也可以,只需在main在每迴圈依次判斷依次就行

另一種方法:

#include

#include

#include

#pragma warning(disable:4996)

intmain()

else

else

free

(str);}

system

("pause");

return0;

}

字串的旋轉 C語言

abcd左旋乙個字元得到bcda abcd左旋兩個字元得到cdab 思路1 設計迴圈使其可以旋1次,然後讓他執行n次 void leftround char src,int time src j tmp 思路2 但是一次一次轉畢竟太麻煩,我們可以選擇拼接法,一次到位 void leftround c...

C語言之字串旋轉

字串在語言中也是非常重要的存在,所以對於字串也有非常多的知識,而今天我就要和大家分享的是關於字串的一些問題 具體問題如下 實現乙個函式,可以左旋字串中的k個字元。abcd左旋乙個字元得到bcda abcd左旋兩個字元得到cdab 思路 其實這個問題我感覺就比較容易了,就是將乙個陣列中字元的位置按順序...

C語言 字串旋轉結果

題目 寫乙個函式,判斷乙個字串是否為另外乙個字串旋轉之後的字串。例如 給定s1 aabcd和s2 bcdaa,返回1 給定s1 abcd和s2 acbd,返回0 aabcd左旋乙個字元得到abcda aabcd左旋兩個字元得到bcdaa aabcd右旋乙個字元得到daabc 思路 通過移動乙個字串與...