iT邦幫忙

1

在 freecodecamp 開啟 daily coding challenge : Day10-Spam Detector

  • 分享至 

  • xImage
  •  

freecodecamp 是什麼 ?

以下是他們的自介

freeCodeCamp 是一個免費學習編程的開發者社區,涵蓋 Python、HTML、CSS、React、Vue、BootStrap、JSON 教程等,還有活躍的技術論壇和豐富的社區活動,在你學習編程和找工作時爲你提供建議和幫助。

不管你是前端,後端還是全端,尤其是自學者(aka沒有朋友)
都適用這網站,但目前我以前端為主。
https://www.freecodecamp.org/learn/front-end-development-libraries/

最近有空從頭檢視自己 coding 的基礎
這個系列會有我發現這個網站的小細節及 daily challenge
以 day-num 紀錄,但不會每天更新(也是練習寫文章)


Day 10 - Spam Detector

https://ithelp.ithome.com.tw/upload/images/20251007/20179314z3Q0opsCrx.png

終於來到我看不懂要幹嘛的題目
翻譯一下
給定一個電話號碼,格式為“+A (BBB) CCC-DDDD”,其中每個字母代表一位數字,如下所示:
A 代表國家代碼,可以是任意位數。
BBB 代表區號,永遠是三位數字。
CCC 和 DDDD 代表本地號碼,分別始終為三位和四位數字。
根據以下條件判斷該號碼是否為垃圾號碼:
國家代碼長度大於 2 位元或不以零 (0) 開頭。
區號大於 900 或小於 200。
本地號碼前三位數字總和出現在本地號碼的後四位數字之內。
此號碼連續出現四次或四次以上相同的數字(忽略格式字元)。

噢買尬這溪蝦毀/images/emoticon/emoticon04.gif
好的!他應該是一個虛構的規則
難怪左看右看都不太現實

A → 國家代碼,任意長度
BBB → 區號,固定三位數
CCC → 本地號碼前三位
DDDD → 本地號碼後四位

本題重點在於

  • “正則表達式提取資料“
  • “字串與數字轉換“
  • “條件判斷與邏輯組合”
  • “資料清理與模式匹配”

放棄思考
.
.
.
.
.
.

  1. 學一點點正則技巧

    • \d+ → 一個或多個數字
    • \d{3} → 三位數
    • \d{4} → 四位數
    • 分組 () → 提取子字串
  2. 字串與數字轉換
    將數字字串轉成整數做比較或加總

功能 Python JavaScript
字串 → 整數 int(s) parseInt(s, 10)
字串拆成陣列 list(s)s.split('') s.split('')
陣列求和 sum(int(d) for d in local1) local1.split('').reduce((a,b)=>a+parseInt(b),0)
  1. 條件判斷與邏輯組合
    多個 if 條件判斷,符合任何一個就算垃圾號碼
功能 Python JavaScript
包含某字串 if str(sum_local) in local2: if (local2.includes(sumLocal.toString()))
  1. 資料清理與模式匹配
    • 用 replace 或 re.sub 移除非數字字元
    • 用正則判斷連續重複數字

tips

你們知道,這裡還可以學辦公室英語嗎?
https://ithelp.ithome.com.tw/upload/images/20251008/20179314aYdrpAzJB2.png


我是阿mo,原來猴頭菇是有點身價的/images/emoticon/emoticon10.gif


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言