時間複雜度小於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...