跳至內容
Astera Technology

先核題內檢查碼,再查代碼

格式、檢查碼及清單有沒有,各自留結果。

下載完整個案資料及參考答案 ↓

訂判斷及所需輸入

本例五位假設代碼,尾位是首四位合計除十的餘數。12345 格式雖齊,檢查碼應0,未查清單已要停。這是題內格式,不是行業條碼規格。

已填本地測試工作表
情況輸入 JSON
原例測試{"frame":"12345","catalogue":["12340"]}
下載可編輯 CSV ↓

跑所附比較

程序真正核碼,亦記有沒有查清單。核碼有效只代表可進下一步,不能確立貨品身分。

錯誤及所需輸出
路徑輸出 JSON
錯誤路徑{"checksumValid":true,"catalogueLookedUp":true,"held":false,"found":false}
所需路徑{"checksumValid":false,"catalogueLookedUp":false,"held":true,"reason":"check-digit"}
下載可編輯 CSV ↓
完整本地 Node24.14.1 程序
import assert from 'node:assert/strict';

const run=function run(i,corrected=true){
    if(!/^\d{5}$/.test(i.frame))return {held:true,reason:'frame-grammar'};
    const valid=([...i.frame.slice(0,4)].reduce((s,c)=>s+Number(c),0)%10)===Number(i.frame[4]);
    if(corrected&&!valid)return {checksumValid:false,catalogueLookedUp:false,held:true,reason:'check-digit'};
    const found=i.catalogue.includes(i.frame);return {checksumValid:corrected?valid:true,catalogueLookedUp:true,held:corrected?!found:false,found};
  };
const cases=[{"input":{"frame":"12345","catalogue":["12340"]},"corrected":false,"expected":{"checksumValid":true,"catalogueLookedUp":true,"held":false,"found":false}},{"input":{"frame":"12345","catalogue":["12340"]},"corrected":true,"expected":{"checksumValid":false,"catalogueLookedUp":false,"held":true,"reason":"check-digit"}},{"input":{"frame":"12340","catalogue":["12340"]},"corrected":true,"expected":{"checksumValid":true,"catalogueLookedUp":true,"held":false,"found":true}},{"input":{"frame":"22228","catalogue":["12340"]},"corrected":true,"expected":{"checksumValid":true,"catalogueLookedUp":true,"held":true,"found":false}}];
for(const test of cases){const actual=await run(test.input,test.corrected);assert.deepEqual(actual,test.expected);console.log(actual);}
下載可執行例子 ↓

按邊界依據作判斷

12340 核碼過且清單有;22228 核碼過但所附清單沒有,仍要停。

  1. 核五位格式
  2. 計題內檢查碼
  3. 過了才查清單

假設規則不能確認真實識別標準。

可編輯邊界輸入及結果
條件輸入 JSON預期輸出 JSON
題內代碼核對成功{"frame":"12340","catalogue":["12340"]}{"checksumValid":true,"catalogueLookedUp":true,"held":false,"found":true}
核碼有效但清單沒有{"frame":"22228","catalogue":["12340"]}{"checksumValid":true,"catalogueLookedUp":true,"held":true,"found":false}
下載可編輯 CSV ↓

原例12345 應標清單沒有的貨品嗎?

查看參考答案

未到這一步。檢查碼不符,清單尚未查;先保這項確切失敗。

相關資源