Day 1 - 反轉字串

Day 1 - 反轉字串

好像差不多該開始更進一步了,買了一堂叫做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
2
3
4

function reverse(str) {
return str.split('').reverse().join('');
}

思路:將字串中每個字拆成獨自的元素,回傳成一個陣列,接著套用陣列方法將這個陣列反轉,最後將這個反轉陣列中的元素連接成一個字串。

note

string.prototype.split
array.prototype.reverse
array.prototype.join

其他解法

credit to Stephen Grider

1
2
3
4
5
6
7
function reverse(str) {
let reversed = '';
for(let character of str){
reversed = character + reversed;
}
return reversed;
}

思路:
使用for of來遍歷js中可被遍歷的元素(字串、陣列)。
將傳入的字串中所有的元素遍歷一遍,然後把字串中每個字加到reversed空字串中,每次累加都把原本的reversed字串加在尾巴。

參考

The Coding Interview Bootcamp: Algorithms + Data Structures

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×