WeHelp Coding 程式題目解答 11~20

更新於 發佈於 閱讀時間約 12 分鐘

WeHelp是台灣的軟體工程師社群,它的網站有程式解題系統 WeHelp Coding,提供基礎的程式練習題,適合新手熟悉語法、建立寫程式的邏輯思維。網站不會保留使用者的作答結果,因此我在這裡留下自己的解答,以及參考AI後修改的解法。目前系統提供Python和JavaScript兩種程式語言解題,本文用JavaScript解題,附上題目和註解供大家參考。

11. 找到目標數字所在的索引位置

輸入一個整數陣列 / 列表和要找的目標數字,你的函式能找到並回傳目標數字所在的索引位置。若該數字不存在於陣列 / 列表中,回傳 -1;若該數字重複出現多次,以第一個出現的位置為準。

輸入範例:[3, 2, 1, 5, 10]、目標數字 1。回傳:2

輸入範例:[5, 2, 3]、目標數字 4。回傳:-1

輸入範例:[-5, 2, -5, 1, 3],目標數字 -5。回傳:0

//    @param nums:{[Integer]}
// @param target:{Integer}
// @return :{Integer}
function findIndex(nums, target){
for (let i=0; i<nums.length; i++){
if (nums[i]==target) return i;
}
return -1
}

12. 找到目標數字所在的多個索引位置

輸入一個整數陣列 / 列表和要找的目標數字,你的函式能找到並回傳目標數字所在的零到多個索引位置。回傳包含多個索引位置的陣列 / 列表,由小到大排列,若目標數字不存在於陣列 / 列表中,回傳空陣列 / 空列表。

輸入範例:[3, 2, 1, 5, 10]、目標數字 1。回傳:[2]
輸入範例:[5, 2, 3]、目標數字 4。回傳:[]
輸入範例:[-5, 2, -5, 1, -5],目標數字 -5。回傳:[0, 2, 4]
// @param nums:{[Integer]}
// @param target:{Integer}
// @return :{[Integer]}
function findIndexes(nums, target){
let indexArray = [];
for (let i=0; i<nums.length; i++){
if (nums[i] == target)
indexArray.push(i);
}
return indexArray;
}

13. 翻轉一個字串

輸入一個字串,你的函式能夠翻轉這個字串。

輸入範例:Hello。回傳:olleH

輸入範例:abcd。回傳:dcba

輸入範例:Good Job。回傳:boJ dooG

//  @param s:{String}
// @return :{String}
// 迴圈​
function reverseString(s){
let string = "";
for (let i=s.length-1; i>=0; i--){
string += s[i];
}
return string;
}
// 內建方法 切開、反轉、合併
function reverseString(s){
return s.split("").reverse().join("");
}

14. 整數陣列 / 列表中,兩兩相乘的最大值

輸入一個至少包含兩個整數的陣列 / 列表,其中可能包含重複的數字if,你的函式能算出並回傳兩兩數字相乘後最大的乘積。

輸入範例:[2, -1, 0]。回傳:0

輸入範例:[-2, -10, 1, 2]。回傳:20

輸入範例:[3, 1, 9, 4, 5]。回傳:45

// @param nums:{[Integer]}
// @return :{Integer}

// 雙層迴圈沒效率
function findMaxProduct(nums){
let max = nums[0]*nums[1];
let length = nums.length;
for (let i=0; i<length; i++){
for (let j=0; j<length; j++){
if (i!=j && nums[i]*nums[j] > max)
max = nums[i]*nums[j];
}
}
return max;
}
// 先把數字排序再取兩個數相乘,負數相乘會變正數所以最大最小兩邊都要檢驗
function findMaxProduct(nums){
const sorted = nums.sort((a,b) => a-b); // .sort()是字典排序所以要加排序邏輯
const head = sorted[0]*sorted[1];
const tail = sorted[sorted.length-1]*sorted[sorted.length-2];
return head > tail ? head : tail;
}

15. 檢查輸入的密碼是否合乎規範

輸入一個字串代表密碼,你的函式能檢查輸入的字串是否合乎以下規範:

  • 只能包含大小寫英文字母、數字、以及以下特殊符號 ! @ # $ %
  • 至少要包含一個大寫和一個小寫字母
  • 至少要包含一個數字
  • 至少要包含一個特殊符號
  • 必須大於等於 8 個字元、小於等於 16 個字元。

若輸入的密碼符合規範,回傳真值,不符合規範,則回傳假值。

輸入範例:abcD。回傳:假

輸入範例:aBcdefg8$。回傳:真

輸入範例:12345678。回傳:假

//  @param s:{String}
// @return :{Boolean}

// 用test方法檢測是否符合正則表達式
function checkPassword(s){
if (!/^[a-zA-Z0-9!@#$%]+$/.test(s)) return false;
if (!/[A-Z]/.test(s)) return false;
if (!/[a-z]/.test(s)) return false;
if (!/\d/.test(s)) return false;
if (!/[!@#$%]/.test(s)) return false;
if (s.length <8 || s.length>16) return false;
return true;
}
// Gemini推薦
function checkPassword(s) {
const regex=/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%])[a-zA-Z0-9!@#$%]{8,16}$/;
if (!regex.test(s)) return false;
return true;
}

16. 偶數測試

輸入一個整數,若輸入的整數是偶數,回傳真;否則,回傳假。

輸入範例:0。回傳:真

輸入範例:-7。回傳:假

輸入範例:102。回傳:真

//  @param n:{Integer}
// @return :{Boolean}
function checkEven(n){
if (n%2==0) return true;
else return false;
}
// 使用條件運算子讓程式更簡潔
function checkEven(n){
return n%2==0 ? true : false;
}

17. 質數測試

輸入一個正整數,若輸入的正整數是質數,回傳真;否則,回傳假。質數定義:在大於 1 的正整數中,除了 1 和該數自身外,無法被其他正整數整除的數。1 本身非質數。

輸入範例:1。回傳:假

輸入範例:2。回傳:真

輸入範例:75。回傳:假

//  @param n:{Integer}
// @return :{Boolean}
// 先特別處理1,2,2N 讓迴圈少跑一點
// 接著用迴圈除以每一個奇數。多數人會驗證到n為止,其實到根號n就足已確認
function checkPrime(n){
if (n==1) return false;
if (n==2) return true;
if (n%2==0) return false;
for (let i=3; i*i <= n; i+=2){
if (n%i==0) return false;
}
return true;
}

18. 將數字用固定小數位數的格式輸出

輸入一個數字,可能是整數或浮點數,你的函式必須將這個數字轉換為固定顯示 2 個小數位數的字串格式。若輸入的數字超過 2 個小數位數,則以四捨五入處理。

輸入範例:0。回傳:0.00

輸入範例:5.4658。回傳:5.47

輸入範例:-3.123。回傳:-3.12

輸入範例:100.1。回傳:100.10

// @param n:{Number}
// @return :{String}
// 內建方法
function formatFloat(n){
return n.toFixed(2);
}

19. 計算有幾個英文單字

輸入一個只包含英文字和空白的字串,你的函式能找出這個字串中有幾個英文單字。不考慮英文單字是否真的存在,且假設英文單字間用一個空白隔開,字串的前後有可能包含零到多個空白。

輸入範例:"Today is a good day"。回傳:5

輸入範例:" My name is John"。回傳:4

輸入範例:" Good "。回傳:1

輸入範例:" "。回傳:0

// @param s:{String}
// @return :{Integer}

function countWords(s){
let count=0;
const string = s.trim(); //去除頭尾空白
if (/[a-zA-Z]+/.test(string)){ //如果有英文字從1開始算
count=1;
for (let i=0; i<string.length; i++){
if (string[i]==" ") count ++;
}
}
return count;
}
//參考Gemini
function countWords(s){
if (s.trim() == "") return 0;
let words = s.trim().split(" "); //用空格分割 回傳陣列
return words.length;
}

20. 檢查是否為等差數列

輸入包含至少三個整數的陣列 / 列表,你的函式能判斷其中的整數是否形成一個等差數列。若是,回傳真,若否,回傳假。

輸入範例:[3, 2, 1]。回傳:真

輸入範例:[0, 0, 0, 0]。回傳:真

輸入範例:[-17, -13, -9, -5]。回傳:真

輸入範例:[1, 3, 6]。回傳:假

//  @param nums:{[Integer]}
// @return :{Boolean}

function checkArithmeticSequence(nums){
let diff = nums[1]-nums[0];
for (let i=2; i<nums.length; i++){
if (nums[i]-nums[i-1] != diff)
return false;
}
return true;
}



留言
avatar-img
留言分享你的想法!
avatar-img
圖地的沙龍
61會員
93內容數
喜歡地圖?熱愛圖表嗎? 圖地,是「圖表、地圖、資訊圖像」的創作園地。 這裡會使用圖像呈現數據資料, 透過數據看見現象趨勢與議題故事。 在 Instagram 和 Facebook 會比較頻繁更新圖表。若有適合的內容會節選修改後發表於此。歡迎大家前往追蹤~
圖地的沙龍的其他內容
2025/04/07
WeHelp是台灣的軟體工程師社群,它的網站有程式解題系統 WeHelp Coding,提供基礎的程式練習題,適合新手熟悉語法、建立寫程式的邏輯思維。網站不會保留使用者的作答結果,因此我在這裡留下自己的解答,以及參考AI後修改的解法。本文用JavaScript解題,附上題目和註解供大家參考。
2025/04/07
WeHelp是台灣的軟體工程師社群,它的網站有程式解題系統 WeHelp Coding,提供基礎的程式練習題,適合新手熟悉語法、建立寫程式的邏輯思維。網站不會保留使用者的作答結果,因此我在這裡留下自己的解答,以及參考AI後修改的解法。本文用JavaScript解題,附上題目和註解供大家參考。
2025/04/06
WeHelp是台灣的軟體工程師社群,它的網站有程式解題系統 WeHelp Coding,提供基礎的程式練習題,適合新手熟悉語法、建立寫程式的邏輯思維。網站不會保留使用者的作答結果,因此我在這裡留下自己的解答,以及參考AI後修改的解法。本文用JavaScript解題,附上題目和註解供大家參考。
2025/04/06
WeHelp是台灣的軟體工程師社群,它的網站有程式解題系統 WeHelp Coding,提供基礎的程式練習題,適合新手熟悉語法、建立寫程式的邏輯思維。網站不會保留使用者的作答結果,因此我在這裡留下自己的解答,以及參考AI後修改的解法。本文用JavaScript解題,附上題目和註解供大家參考。
2025/04/05
WeHelp是台灣的軟體工程師社群,它的網站有程式解題系統 WeHelp Coding,提供基礎的程式練習題,適合新手熟悉語法、建立寫程式的邏輯思維。網站不會保留使用者的作答結果,因此我在這裡留下自己的解答,以及參考AI後修改的解法。本文用JavaScript解題,附上題目和註解供大家參考。
2025/04/05
WeHelp是台灣的軟體工程師社群,它的網站有程式解題系統 WeHelp Coding,提供基礎的程式練習題,適合新手熟悉語法、建立寫程式的邏輯思維。網站不會保留使用者的作答結果,因此我在這裡留下自己的解答,以及參考AI後修改的解法。本文用JavaScript解題,附上題目和註解供大家參考。
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
這篇文章介紹了網站的整體架構以及開發時所使用的工具和套件,包括 Next.js、Tailwind CSS 和 socket.io 等。文章回顧了程式碼的重構與優化,幫助開發者提高工作效率,適合希望深入瞭解前端開發和網站架構的讀者。
Thumbnail
這篇文章介紹了網站的整體架構以及開發時所使用的工具和套件,包括 Next.js、Tailwind CSS 和 socket.io 等。文章回顧了程式碼的重構與優化,幫助開發者提高工作效率,適合希望深入瞭解前端開發和網站架構的讀者。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
本文介紹了CSS Battle 17的挑戰題目,並提供瞭解題的技巧和方法。內容包括基本排版、圖形解構能力和技術總結。歡迎大家分享自己的解法與作者交流。
Thumbnail
本文介紹了CSS Battle 17的挑戰題目,並提供瞭解題的技巧和方法。內容包括基本排版、圖形解構能力和技術總結。歡迎大家分享自己的解法與作者交流。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News