跳至內容
Astera Technology

核對多份文件是否一併找齊

按所需文件組合,列找到及欠缺編號,重複搜尋結果不加分。

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

訂明本例驗收任務

假設同事問題須用齊指定文件組合。只數找到的不同所需文件,其他結果及重複段落不加分;列出欠的編號及分子、分母。所需清單空白便列作未訂明,不能自行當通過。

  1. 先去除所需文件的重複編號
  2. 與提供的搜尋結果比對
  3. 列欠項及整組是否齊備

所需清單空白,先補訂答案組合。

使用已填個案

原創假設輸入及確切答案鍵
個案已提供輸入預期結構化結果判斷及原因
欠獨立部分{"required":["D1","D2"],"hits":["D1","X","Y"]}{"found":["D1"],"missing":["D2"],"numerator":1,"denominator":2,"complete":false}D1 不能代替 D2;找到相關文件也未齊整組。
齊備但有重複結果{"required":["D1","D2"],"hits":["D2","D1","D1"]}{"found":["D1","D2"],"missing":[],"numerator":2,"denominator":2,"complete":true}兩份所需文件都在;重複 D1 不改分母。
未訂所需組合{"required":[],"hits":["D1"]}{"found":[],"missing":[],"numerator":0,"denominator":0,"complete":null}沒有訂所需組合,完整度未能判定;0/0 不算通過。
下載可編輯 CSV ↓

逐步處理 undeclared-bundle 個案,須得到甚麼結果?原因是甚麼?

查看參考答案

{"found":[],"missing":[],"numerator":0,"denominator":0,"complete":null}。沒有訂所需組合,完整度未能判定;0/0 不算通過。

執行完整本機驗算

另存為 .mjs,以 Node.js 執行;只驗提供的個案
import assert from 'node:assert/strict';

function evaluate(x){
 const required=[...new Set(x.required)].sort(),hits=new Set(x.hits);
 const found=required.filter(id=>hits.has(id)),missing=required.filter(id=>!hits.has(id));
 return {found,missing,numerator:found.length,denominator:required.length,complete:required.length?missing.length===0:null};
}

const cases = [
  {
    "id": "missing-piece",
    "input": {
      "required": [
        "D1",
        "D2"
      ],
      "hits": [
        "D1",
        "X",
        "Y"
      ]
    },
    "expected": {
      "found": [
        "D1"
      ],
      "missing": [
        "D2"
      ],
      "numerator": 1,
      "denominator": 2,
      "complete": false
    }
  },
  {
    "id": "duplicate-hit",
    "input": {
      "required": [
        "D1",
        "D2"
      ],
      "hits": [
        "D2",
        "D1",
        "D1"
      ]
    },
    "expected": {
      "found": [
        "D1",
        "D2"
      ],
      "missing": [],
      "numerator": 2,
      "denominator": 2,
      "complete": true
    }
  },
  {
    "id": "undeclared-bundle",
    "input": {
      "required": [],
      "hits": [
        "D1"
      ]
    },
    "expected": {
      "found": [],
      "missing": [],
      "numerator": 0,
      "denominator": 0,
      "complete": null
    }
  }
];
for (const c of cases) assert.deepEqual(evaluate(c.input), c.expected, c.id);
console.log(JSON.stringify({checked:cases.length,caseIds:cases.map(c=>c.id)}));
下載可執行例子 ↓

每條同事問題保留所需組合與實際找到編號。此檢查只看提供的搜尋資料;沒有生成答案,也未判斷段落是否支持說法。

相關資源