今天工作中遇到這麼乙個情況:將25種字串分成17類,然後統計每一類中的數量
第一版**簡單粗暴,直接上if-else,**如下
if
(strcasestr
(str,
"a")
elseif(
strcasestr
(str,
"b")
elseif(
strcasestr
(str,
"c")
typedef
struct st_type_ st_type;
static
const st_type gtabtype=
,,,,
....
,};
然後是在函式中使用
int index =0;
int type =-1
;while
(gtabtype[index]
.str)
++index;}if
(type <0)
return
0;
這樣的**看起來就整潔多了,也更好維護。 C語言重構 328 奇偶鍊錶
所有題目源 git位址 題目給定乙個單鏈表,把所有的奇數節點和偶數節點分別排在一起。請注意,這裡的奇數節點和偶數節點指的是節點編號的奇偶性,而不是節點的值的奇偶性。請嘗試使用原地演算法完成。你的演算法的空間複雜度應為 o 1 時間複雜度應為 o nodes nodes 為節點總數。示例 1 輸入 1...
C語言重構 207 課程表
所有題目源 題目你這個學期必須選修 numcourse 門課程,記為 0 到 numcourse 1 在選修某些課程之前需要一些先修課程。例如,想要學習課程 0 你需要先完成課程 1 我們用乙個匹配來表示他們 0,1 給定課程總量以及它們的先決條件,請你判斷是否可能完成所有課程的學習?示例 1 輸入...
C語言重構 143 重排鍊錶
所有題目源 git位址 題目給定乙個單鏈表 l l0 l1 ln 1 ln 將其重新排列後變為 l0 ln l1 ln 1 l2 ln 2 你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。示例 1 給定鍊錶 1 2 3 4,重新排列為 1 4 2 3.示例 2 給定鍊錶 1 2 3 4...