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
留言分享你的想法!
avatar-img
萱寫寫
2會員
18內容數
讀書心得、活動參加心得
萱寫寫的其他內容
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
去歐洲真的是又興奮又緊張。網路上常說歐洲治安不好,行前說明會時領隊也提醒:「不要背後背包,隨身物要放在前面比較安全!」 但出國玩總是想打扮得美美的啊~而且隨身總得帶些實用小物:雨傘、濕紙巾、小瓶水、萬用藥膏……體積雖小,但零零總總裝起來也不少。我在蝦皮購買了這4樣超實用旅遊好物!減緩我的焦慮感。
Thumbnail
去歐洲真的是又興奮又緊張。網路上常說歐洲治安不好,行前說明會時領隊也提醒:「不要背後背包,隨身物要放在前面比較安全!」 但出國玩總是想打扮得美美的啊~而且隨身總得帶些實用小物:雨傘、濕紙巾、小瓶水、萬用藥膏……體積雖小,但零零總總裝起來也不少。我在蝦皮購買了這4樣超實用旅遊好物!減緩我的焦慮感。
Thumbnail
開箱 3 套深受 0-6 歲寶寶喜愛的互動式童書,包含 Bizzy Bear 推拉書、小小音樂大師有聲書、Poke A Dot 泡泡書,有效提升寶寶閱讀興趣與親子共讀時光。搭配蝦皮雙 11 購物攻略,教你如何鎖定免運、折價券、高額回饋,並透過蝦皮分潤計畫,將日常購物開銷轉化為穩定育兒基金,聰明消費。
Thumbnail
開箱 3 套深受 0-6 歲寶寶喜愛的互動式童書,包含 Bizzy Bear 推拉書、小小音樂大師有聲書、Poke A Dot 泡泡書,有效提升寶寶閱讀興趣與親子共讀時光。搭配蝦皮雙 11 購物攻略,教你如何鎖定免運、折價券、高額回饋,並透過蝦皮分潤計畫,將日常購物開銷轉化為穩定育兒基金,聰明消費。
Thumbnail
文章更新至 2023 年 12 月底。
Thumbnail
文章更新至 2023 年 12 月底。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News