問題:
實現乙個函式,可以左旋字串中的k個字元。
abcd左旋乙個字元得到bcda
abcd左旋兩個字元得到cdab
方法一:
思路:(1)定義字串。
(2)需注意字串旋轉次數可為n次(正整數)。(如旋轉23次和旋轉3次的結果一樣)
(3)計算實際旋轉次數
(4)寫內層迴圈一次左旋
(5)加外層迴圈控制實際迴圈次數
#include
#include
void
leftmove
(char array,
int len,
int n)
if(j = len -1)
}}intmain()
方法二:(優選,單層迴圈,時間複雜度為o(n))
思路:(1)從輸入要翻轉字元個數下標分為陣列的前半部分和後半部分
(2)分別對前半部分、後半部分、整體進行翻轉
#include
#include
#include
void
math
(char array,
int i,
int j)
}void
leftmove
(char array,
int len,
int n)
intmain()
指標方法實現:#include
#include
#include
void
math
(char
* a,
char
* p)
}void
leftmove
(char
*a,int len,
int n)
intmain()
方法三:(窮舉法)
(缺點:需開闢空間,時間複雜度較高)
思路:(1)利用malloc函式開闢空間
(2)利用strcpy拷貝陣列a
(3)利用strcat拼接陣列,形成雙重陣列
(4)根據實際旋轉字元個數選擇一段字串輸出
#include
#include
#include
void
leftmove
(char
*a,int len,
int n)
intmain()
C語言 字串左旋
問題 實現乙個函式,可以左旋字串中的k個字元。例如 abcd左旋乙個字元得到bcda abcd左旋兩個字元得到cdab 方法一 將第乙個字元複製乙份,然後將字串左移一位再將第乙個字元賦值給最後一位,要移動k個字元就迴圈k次。方法二 將字串分為兩部分,先將前k個字元逆置,再將後一部分字串逆置,最後將整...
C語言 左旋字串
實現乙個函式,可以左旋字串中的k個字元 方法一 開闢另乙個陣列,先把第k 1後面的字元寫入這個陣列中,再把要左旋的k個字元寫進去 實現如下 include include include void left relvove char str,char arr,int k pcur str 把第k 1...
C語言之 左旋字串
如 abcde左旋一位是bcdea 左旋兩位是cdeab。方法一 迴圈左移法。先將第一次字元拿出,然後將後面的字元依次向左移1位,剛好最後乙個字元空出,把第乙個字元放入,當然這裡面考慮到這個字串的長度,多次操作可以用移的步數和字串的個數取 來計算。define crt secure no warni...