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 思路 通過移動乙個字串與...