力扣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 !!!
posted on 2022-05-12 09:26  我不想一直当菜鸟  阅读(105)  评论(0编辑  收藏  举报