Kata Practice - String ends with? (JavaScript)

Kata Practice - String ends with? (JavaScript)

這個系列會把自己練習過的 Kata 題目記錄下來,希望除了記錄的性質以外也能夠觀察自己撰寫程式邏輯的進化過程。如果有幸看到這邊的話也可以參考一下,再到 Codewars 的網站註冊一個帳號試著玩看看,自己蠻喜歡整個網站的得分和排行榜設定,會讓人越寫越有成就感喔!

題目

Complete the solution so that it returns true if the first argument(string) passed in ends with the 2nd argument (also a string).

Examples
1
2
solution('abc', 'bc') // returns true
solution('abc', 'd') // returns false

自己的解法

1
2
3
4
5
const solution = (str, ending) => {
const strLength = str.length;
const endingLength = ending.length;
return str.slice(str.length - endingLength) === ending
}

解題脈絡

原本想說用迴圈比較最後面的字串,但寫不出來之後貼去 ChatGPT 問了一下,結果得到的回覆是:函式的目的似乎是要檢查字串 str 是否以 ending 結尾,但程式碼卻做了相反的事情。
我真的傻眼!哈哈哈哈哈 要被自己笑死了
所以後來我看他的解法,覺得我可以理解他的解法:先將兩個字串的長度個別算出來後,將 str 多出的 character 移除掉後,就可以直接拿來跟 ending 字串做比較了!

其他人的解法

1
2
3
function solution(str, ending){
return str.endsWith(ending);
}

選擇記錄這個解法的原因

對!又是一個看了 solution 後發現原來 JavaScript 早就有提供這樣的 function 了 ^_^
希望這樣的練習多多增加自己對 JavaScript 原生處理字串的 function 更熟悉或更了解一些。

觀念釐清

現在寫題目的目的比較不像一開始一定要完全靠自己解出來,畢竟在這個 AI 工具跟 LLM 語言模型快速發展的年代,懂得如何應用這些工具加快我解題的速度也是一種能力的。大家也可以在練習 Kata 的過程中多多加強自己應用這些工具的經驗值喔!

那我們就下次見ʘ‿ʘ

評論