(C語言)楊氏矩陣 逆轉字串 左旋字串

2021-09-19 04:16:49 字數 2727 閱讀 9165

時間複雜度小於o(n) :

2、逆轉字串

3、左旋字串

題目:有乙個二維陣列,陣列的每行從左到右是遞增的,每列從上到下是遞增的,在這樣的陣列中查詢乙個數字是否存在

一般方法:

#define _crt_secure_no_warnings 1

#include

#include

#include

#define col 4

intyang

(int arr[

][col]

,int val)

else

if(tmp=0)

//小於要找的數,在下一行尋找

else

if(tmp>val && j >=0)

//大於要找的數,從該列向前找

else

return0;

}}intmain()

;printf

("陣列為:\n");

for(i =

0; i <

4; i++

)printf

("\n");

}printf

("請輸入乙個數:");

scanf_s

("%d"

,&a);if

(yang

(arr, a)

)else

printf

("\n");

system

("pause");

return0;

}

執行效果:

時間複雜度小於o(n) :

int

stepwise

(int arr[

100]

[100],

int row,

int col,

int target)

int i =0;

//從第0行開始

int j = col -1;

//從最後一列開始

while

(i < row && j >=0)

else

if(target < arr[i]

[j])

else

}return0;

//迴圈執行完畢仍沒找到

}int

main()

;printf

("請輸入陣列內容:\n");

for(

int i =

0; i < row; i++)}

printf

("請輸入需要搜尋的值:");

scanf

("%d"

,&target);if

(stepwise

(arr, row, col, target)

)else

system

("pause");

return0;

}

執行效果:

有乙個字元陣列的內容為:「student a am i」,

將陣列的內容改為"i am a student".

#define _crt_secure_no_warnings 1

#include

#include

#include

#include

#include

void

reverse

(char

*start,

char

*end)

}void

reverse_str

(char

*str,

int sz)

right = str1 -1;

//此時str1指向單詞後方的空格,需要減一方能指向單詞的最後乙個字母

reverse

(left, right)

;//繼整體反轉後再次反轉單詞,能使單詞拼寫順序恢復過來if(

*str1 ==

' ')

//等於空格讓指標後移一位否則不能參與下次迴圈。}}

intmain()

實現乙個函式,可以左旋字串中的k個字元。abcd左旋乙個字元得到bcda

abcd左旋兩個字元得到cdab

分析:旋轉時將字串第一位存放起來,後面的左移,最後將存放求來的第一位放入最後一位,旋轉幾次就操作幾次。

#define _crt_secure_no_warnings 1

#include

#include

#include

char

*rotate_string

(char arr,

int n)

arr[len -1]

= temp;

}return arr;

}int

main()

執行效果:

C語言左旋字串

問題 實現乙個函式,可以左旋字串中的k個字元。abcd左旋乙個字元得到bcda abcd左旋兩個字元得到cdab 方法一 思路 1 定義字串。2 需注意字串旋轉次數可為n次 正整數 如旋轉23次和旋轉3次的結果一樣 3 計算實際旋轉次數 4 寫內層迴圈一次左旋 5 加外層迴圈控制實際迴圈次數 inc...

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...