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是因為剛剛移了一個字元,表示新字串少了一個字元,再加上最後一個已經交換過了,要再扣掉一個字元

直到全部交換完畢

arrow
arrow
    文章標籤
    解題
    全站熱搜
    創作者介紹
    創作者 Davis 的頭像
    Davis

    Epoch

    Davis 發表在 痞客邦 留言(0) 人氣()