← 返回博客列表
Stripe

Stripe 面試真題解析:Shipping Cost Calculation(物流運費計算)

2026-01-05

在 Stripe 的全端或後端面試中,"Shipping Cost Calculation" 是一道非常經典的業務邏輯模擬題。它不僅考察候選人對複雜資料結構的處理能力,還重點考察程式碼的可讀性、擴充性以及邊界條件的測試。

題目描述

假設你正在為一個線上硬體商店構建運費計算系統。商店銷售不同尺寸的商品(如滑鼠、筆記型電腦),並且運往不同的國家(如美國 US、加拿大 CA)。

你需要實作一個函數,根據輸入的訂單詳情(Order)和運費價目表(Shipping Cost Matrix),計算總運費。

1. 基礎運費計算

輸入資料結構範例:

// 訂單 Order
{
  "country": "US",
  "items": [
    {"product": "mouse", "quantity": 20},
    {"product": "laptop", "quantity": 5}
  ]
}

// 運費表 Shipping Cost Matrix (單位: cents)
{
  "US": [
    {"product": "mouse", "cost": 550},
    {"product": "laptop", "cost": 1000}
  ],
  "CA": [
    {"product": "mouse", "cost": 750},
    {"product": "laptop", "cost": 1100}
  ]
}

任務: 實作 calculate_shipping_cost(order, shipping_cost) 函數。

2. 進階:基於數量的階梯折扣(Tiered Pricing)

在實際業務中,為了鼓勵多買,運費通常會有折扣。題目會引入一個新的運費表結構,包含數量區間。

更新後的運費表範例 (US):

任務: 更新計算函數以支援階梯定價。

oavoservice 解題思路分析

這道題的核心在於資料結構的轉換區間匹配邏輯

  1. 預處理運費表:原始的運費表通常是 List 結構,搜尋效率為 O(N)。建議將其轉換為 Hash Map(字典),以 country -> product 為鍵,實作 O(1) 的快速搜尋。
  2. 階梯定價邏輯
    • 不要硬編碼邏輯。建議封裝一個 get_unit_cost(product, quantity, country_rules) 輔助函數。
    • 注意區間定義的完整性(例如 maxQuantity: null 代表無窮大)。
  3. 貨幣計算:始終使用整數(cents)進行計算,避免浮點數精度問題。

程式碼結構建議

def parse_shipping_rules(rules_json):
    # 將 JSON 轉換為易於查詢的字典結構
    pass

def calculate_tier_cost(item_quantity, tiers):
    # 根據數量匹配對應的價格區間
    pass

def calculate_shipping_cost(order, rules):
    total_cost = 0
    country = order['country']
    # 遍歷訂單項並累加
    return total_cost

面試官常見的 Follow-up


需要專業的面試輔助?

oavoservice 團隊專注於為華人工程師提供高品質的 OA/VO 輔助服務。我們擁有深耕業界多年的大牛導師,為您提供從履歷優化、模擬面試到即時輔助的全方位支援。

立即聯繫我們 獲取更多 Stripe 面試真題與客製化輔導方案。