close
Write a function that takes a string as input and returns the string reversed.
將輸入的字串反轉
這題也是相當容易
但過程卻有點卡,卡在一開始的分配記憶體malloc和最後要將最後一個字設為空字元,我想若是分配空間大小設定好,應該就不用最後一個步驟
因此我起初認為malloc(sizeof(s)),設為與輸入字串一樣大小應該就夠了,但卻不夠。
後來想法是malloc(sizeof(char*)*strlen(s)),設為與輸入字串長度乘上char的大小。
但最後還是必須設為空字元
分配記憶體的技巧還需加強
1/24更新
上完J大三天的課後,有提到這是面試愛考題
需要in-replace,因此有新的想法
新想法
將第一個字元與最後一個該交換位置的字元交換
swap(s[0], s[len-1])
help_reverse(s+1, len-2);
s+1是因為第一個字元交換後,往後移一個字元
len-2是因為剛剛移了一個字元,表示新字串少了一個字元,再加上最後一個已經交換過了,要再扣掉一個字元
直到全部交換完畢
文章標籤
全站熱搜