1. 程式人生 > 其它 >力扣383(java&python)-贖金信(簡單)

力扣383(java&python)-贖金信(簡單)

題目:

給你兩個字串:ransomNote 和 magazine ,判斷 ransomNote 能不能由 magazine 裡面的字元構成。

如果可以,返回 true ;否則返回 false 。

magazine 中的每個字元只能在 ransomNote 中使用一次。

 示例 1:

輸入:ransomNote = "a", magazine = "b"
輸出:false
示例 2:

輸入:ransomNote = "aa", magazine = "ab"
輸出:false
示例 3:

輸入:ransomNote = "aa", magazine = "aab"
輸出:true
 

提示:

1 <= ransomNote.length, magazine.length <= 105
ransomNote 和 magazine 由小寫英文字母組成

來源:力扣(LeetCode)
連結:https://leetcode.cn/problems/ransom-note
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

解題思路:

先統計magazine中每個字元出現的次數,再遍歷ransomNote,每遍歷一個字元,都用magazine中統計出字元出現的次數減去當前字元出現的次數,如果相減的結果為負數,說明ransomNote不能由magazine 裡面的字元構成,返回false。

java程式碼:

Python3:

遍歷ransomNote中的每個字元,判斷字元在magazine是否含有相同字元,沒有直接返回False,如果當前遍歷的字元在magazine中就用replace()進行替換刪除用於更新magazine,最後返回True

程式碼:

 小知識:

Python replace() 方法把字串中的 old(舊字串) 替換成 new(新字串),如果指定第三個引數max,則替換不超過 max 次。

語法:

str.replace(old, new[, max])

例項:

str = "www. baidu.com"
print("百度地址:",str)
print("百度新地址:",str.replace("baidu.com", "runoob.cn"))
str = "this is a string example !!! "
print (str.replace("is", "was", 3))
實際輸出: 百度地址:www.baidu.com 百度新地址: www.runoob.cn thwas was a string example !!!