好像差不多該開始更進一步了,買了一堂叫做The Coding Interview Bootcamp: Algorithms + Data Structures的課學習演算法。
我會先自己解過一次,再參考答案,這篇文章會記錄我的解法,若是我覺得其他解法有值得注意的地方,也許也會記錄在這裡。
這系列就……持續到找到工作為止吧。
題目
string reversal
— Directions
Given a string, return a new string with the reversed
order of characters
— Examples
reverse(‘apple’) === ‘leppa’
reverse(‘hello’) === ‘olleh’
reverse(‘Greetings!’) === ‘!sgniteerG’
反轉字串。
解法
我的解法
1 |
|
思路:將字串中每個字拆成獨自的元素,回傳成一個陣列,接著套用陣列方法將這個陣列反轉,最後將這個反轉陣列中的元素連接成一個字串。
note
string.prototype.split
array.prototype.reverse
array.prototype.join
其他解法
credit to Stephen Grider
1 | function reverse(str) { |
思路:
使用for of來遍歷js中可被遍歷的元素(字串、陣列)。
將傳入的字串中所有的元素遍歷一遍,然後把字串中每個字加到reversed空字串中,每次累加都把原本的reversed字串加在尾巴。