3484. Design Spreadsheet | LeetCode | Swift

vc7-avatar-img
發佈於LeetCode
更新 發佈閱讀 3 分鐘

每日一題

日期

2025/9/19

資料結構

為了快速存取資料,這一題可以利用 HashMap 解。A1 就直接作為 key 值,不需要拆開英文和數字和不用建立二維的資料結構。

解開 formula

這題的核心演算法就在 getValue 這個方法 。我在這邊用了兩次分割字串,根據 =+ 分離出兩個要運算的數值。

解析數值

根據題意,有兩個情境

  1. 英文加數字:從 HashMap 試著取用,失敗的話回傳 0
  2. 純數字:試著轉換成 Int ,失敗的話使用 0

合併起來如下

private func value(_ key: String) -> Int {
hashTable[key] ?? Int(key) ?? 0
}

程式碼

class Spreadsheet {

private var values = [String: Int]()

init(_ rows: Int) {}

func setCell(_ cell: String, _ value: Int) {
values[cell] = value
}

func resetCell(_ cell: String) {
values[cell] = 0
}

func getValue(_ formula: String) -> Int {
formula
.components(separatedBy: "=")[1]
.components(separatedBy: "+")
.map(value)
.reduce(0, +)
}

private func value(_ key: String) -> Int {
values[key] ?? Int(key) ?? 0
}
}
留言
avatar-img
萱寫寫
3會員
19內容數
讀書心得、活動參加心得
萱寫寫的其他內容
2025/09/18
LeetCode 每日一題: 2025/09/18
2025/09/18
LeetCode 每日一題: 2025/09/18
2025/09/17
LeetCode 每日一題: 2025/09/17
2025/09/17
LeetCode 每日一題: 2025/09/17
2025/09/16
2025/09/16
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
別讓你的房子,變成家中最大的「閒置資產」 作為一名服務高淨值客戶的私人銀行顧問,我每天的任務只有一個:幫客戶「讓錢滾動」。然而,當我觀察身旁許多同樣育有子女的朋友們,即便他們多半已是職場上的中高階主管,表面上看似光鮮亮麗,有房有車;但實際上,大家都是典型的「夾心世代」。每個月薪水一入帳,扣掉沉重的
Thumbnail
別讓你的房子,變成家中最大的「閒置資產」 作為一名服務高淨值客戶的私人銀行顧問,我每天的任務只有一個:幫客戶「讓錢滾動」。然而,當我觀察身旁許多同樣育有子女的朋友們,即便他們多半已是職場上的中高階主管,表面上看似光鮮亮麗,有房有車;但實際上,大家都是典型的「夾心世代」。每個月薪水一入帳,扣掉沉重的
Thumbnail
文章更新至 2023 年 12 月底。
Thumbnail
文章更新至 2023 年 12 月底。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News