383. Ransom Note (贖金信)

閱讀時間約 1 分鐘

英文版點我中文版點我


↑看個小廣告,支持好內容↑



❶ Hash Table (索引、桶子)

題意不複雜,判斷給定的 magazine 字庫能否湊成 ransomNote 就行,這是蠻直觀的計數問題:

1. 計算字庫 (magazine) 裡各種字母的數量
2. 逐一扣除 ransomNote 含有的字母


要是過程中扣出負值,就代表有字母不夠用了,反之則為成功。由於小寫字母共 26 種,我們用 map 或是長度 26 的陣列來統計都 OK!空間複雜度可以視為 O(26)。

但如果我們不想花耗任何空間,是有可能的嗎?


❷ Replace

那我們就得模擬 ransomNote 的產生了,這邊有個實例:

// magazine="apple", ransomNote="panel"

1. 字庫找到 a,拿掉目標字的 a 代表已經湊得:p_nel。
2. 字庫找到 p,拿掉目標字的 p 代表已經湊得:__nel。
3. 字庫找到 p,目標字已沒有 p 因此無影響。​
4. 字庫找到 l,拿掉目標字的 l 代表已經湊得:__ne_。
5. 字庫找到 e,拿掉目標字的 e 代表已經湊得​:__n__。​(n 沒被湊出,任務失敗)


對於字庫出現的字母,我們一一拿去取代目標單字,倘若 ransomNote 變成空字串,即表示單字有成功組成。這個方法省去計數器的空間,卻需要反覆遍歷字串執行 replace,可以說是用時間換取了空間。



  • 本題分類標籤:Hash TableStringCounting
  • 本題正解率=60.5%

❤️ 若內容對你實用,歡迎追蹤本專題,或小額贊助支持~
⭐ 這是我的第 20 篇刷題筆記,完整解題索引看這裡 → Here

avatar-img
54會員
59內容數
我要成為 LeetCode 王!快跟我一起踏上旅程!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
LeetCode King 的其他內容
總是記不順雙指針法的程序?畫圖跑一次給你看!
班上闖來了一個陌生人!該如何快狠準揪出他?這道經典考題的解法,遠比你想的還要多種 ......
總是記不順雙指針法的程序?畫圖跑一次給你看!
班上闖來了一個陌生人!該如何快狠準揪出他?這道經典考題的解法,遠比你想的還要多種 ......
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
近年最受大眾所注視的Ransomware事件,要數2017年的Wannacry,當時不論是大型企業或是每年投放大量資源於資訊保安的銀行、政府機構也不能倖免。 過去幾年,看似沒有關於Ransomware嚴重保安事故的新聞報導,但是Ransomware的威脅不單沒有減低,越來越多的企業正受到更多模化的
Thumbnail
2023/07/23 這學校很酷,有提供民眾機車駕照考試模擬練習的場地,接著昨天緊鑼密鼓的吊車與攀樹修剪,和滿天烏雲打交道讓人又期待又害怕。 有山貓協助樹枝拖拉實在輕鬆又有效率,不然今天大概會多兩個小時在清運樹枝。 完工在屋簷下吃午餐的時候開始狂風暴雨雷聲轟隆,大家看著雨露出笑容,我們順利躲過
Thumbnail
Python的random模組是一個非常實用的工具,可以讓我們在程式中生成隨機數或從序列中隨機選擇元素。下面介紹一些常用的random模組函數。 首先,我們需要導入random模組,可以使用以下語句進行導入: 接下來,我們來看看random模組中的一些基本函數: random.random()
Thumbnail
雖然小吉很可愛,不過能趁著假期請人照顧孩子出門度假也挺好 豐收祭就是個放下一切,出門渡假的日子 不限時地的想望都幫你完成唷!😆 順手查了一下誠是何許人也。按照輩分算是熱浪的叔叔(春戀的兒子。熱浪的爺爺的弟弟的小孩) 一起來吃節慶大餐 吃飽休息過後,游泳、泡澡、看電視,總之做些放鬆的事
Thumbnail
你都如何繼續發展舊有的筆記呢? 在Obsidian中,我會利用Random功能,隨意叫出舊有的筆記,有感覺就加上幾筆。 這個流程其實超神奇的!達到了複習,刺激思考,獲得新知的多重效果,讓人欲罷不能! 下面3個私房經驗,或許也能幫助你更好發展筆記: 私房經驗1 - 善用隨機閱讀,多讀筆記:Obsidi
Thumbnail
就跟鄉土劇的劇情一樣,我們就一直跑一直跑,跑到喘不過氣來,最後跪在泥土路上看著他們遠去。
Thumbnail
透過random模組生成的隨機數並非是真正完全隨機的,而是可以被重現的,因此這個特徵也被稱為是偽隨機(pseudo-random),而重現隨機數的方式便是透過設定相同的種子(seed),或是設定隨機數生成器的狀態(state)來達成。
Thumbnail
當我們需要在程式中模擬或實作一些隨機發生的事件,例如模擬猜拳、丟骰子的結果,便需要程式可以根據開發者輸入的數值範圍、型態等,隨機產生一個結果,而Python的random()函數便是用於實現這個功能。
Thumbnail
完整標題:random 與「亂」、「亂的樣模」(亂的模樣) 、「亂做規節律搞混(雜)」或「亂治規節律理經(治)」或「亂搞」或「隨機」或「混雜」、「亂雜」、「亂混」等的轉換密碼
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
近年最受大眾所注視的Ransomware事件,要數2017年的Wannacry,當時不論是大型企業或是每年投放大量資源於資訊保安的銀行、政府機構也不能倖免。 過去幾年,看似沒有關於Ransomware嚴重保安事故的新聞報導,但是Ransomware的威脅不單沒有減低,越來越多的企業正受到更多模化的
Thumbnail
2023/07/23 這學校很酷,有提供民眾機車駕照考試模擬練習的場地,接著昨天緊鑼密鼓的吊車與攀樹修剪,和滿天烏雲打交道讓人又期待又害怕。 有山貓協助樹枝拖拉實在輕鬆又有效率,不然今天大概會多兩個小時在清運樹枝。 完工在屋簷下吃午餐的時候開始狂風暴雨雷聲轟隆,大家看著雨露出笑容,我們順利躲過
Thumbnail
Python的random模組是一個非常實用的工具,可以讓我們在程式中生成隨機數或從序列中隨機選擇元素。下面介紹一些常用的random模組函數。 首先,我們需要導入random模組,可以使用以下語句進行導入: 接下來,我們來看看random模組中的一些基本函數: random.random()
Thumbnail
雖然小吉很可愛,不過能趁著假期請人照顧孩子出門度假也挺好 豐收祭就是個放下一切,出門渡假的日子 不限時地的想望都幫你完成唷!😆 順手查了一下誠是何許人也。按照輩分算是熱浪的叔叔(春戀的兒子。熱浪的爺爺的弟弟的小孩) 一起來吃節慶大餐 吃飽休息過後,游泳、泡澡、看電視,總之做些放鬆的事
Thumbnail
你都如何繼續發展舊有的筆記呢? 在Obsidian中,我會利用Random功能,隨意叫出舊有的筆記,有感覺就加上幾筆。 這個流程其實超神奇的!達到了複習,刺激思考,獲得新知的多重效果,讓人欲罷不能! 下面3個私房經驗,或許也能幫助你更好發展筆記: 私房經驗1 - 善用隨機閱讀,多讀筆記:Obsidi
Thumbnail
就跟鄉土劇的劇情一樣,我們就一直跑一直跑,跑到喘不過氣來,最後跪在泥土路上看著他們遠去。
Thumbnail
透過random模組生成的隨機數並非是真正完全隨機的,而是可以被重現的,因此這個特徵也被稱為是偽隨機(pseudo-random),而重現隨機數的方式便是透過設定相同的種子(seed),或是設定隨機數生成器的狀態(state)來達成。
Thumbnail
當我們需要在程式中模擬或實作一些隨機發生的事件,例如模擬猜拳、丟骰子的結果,便需要程式可以根據開發者輸入的數值範圍、型態等,隨機產生一個結果,而Python的random()函數便是用於實現這個功能。
Thumbnail
完整標題:random 與「亂」、「亂的樣模」(亂的模樣) 、「亂做規節律搞混(雜)」或「亂治規節律理經(治)」或「亂搞」或「隨機」或「混雜」、「亂雜」、「亂混」等的轉換密碼