今天的題目是-檢查一個句子是不是回文。
我會先自己解過一次,再參考答案,這篇文章會記錄我的解法,若是我覺得其他解法有值得注意的地方,也許也會記錄在這裡。
### 題目
— Directions
Given a string, return true if the string is a palindrome
or false if it is not. Palindromes are strings that
form the same word if it is reversed. Do include spaces
and punctuation in determining if the string is a palindrome.
— Examples:
palindrome(“abba”) === true
palindrome(“abcdefg”) === false
檢測是不是回文
我的解法
1 | function palindrome(str) { |
另一種解法
使用陣列方法every
1 |
|
將所有陣列內元素套入callback,設定回傳true的條件,若是全部元素皆通過的話會回傳true
1 | function palindrome(str) { |
思路:
假設要來應證以下字串是否為回文
a | b | c | b | a |
---|---|---|---|---|
0 | 1 | 2 | 3 | 4 |
由於回文的特性,我們可以知道,從字串的中心點出發,距離相同,方向相反的兩個字母會相同。
以這個例子來說,0位會等於第4位(末尾),1位會等於第3位,可以推斷,第i位的數,它的對照點位置會是array.length-i-1
運用every來檢查每一個元素,檢查該元素是否等同於其對照點的值。