给你两个字符串: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
遍历ransomNote,并在magazine中删除对应的元素,如果不存在的话,则返回False。
删除字符串元素的话,我们可以使用replace函数来进行替换。
或者使用
key=magazine.find(i)
magazine=magazine[0:key]+magazine[key+1:]
程序如下:
class Solution(object):
def canConstruct(self, ransomNote, magazine):
"""
:type ransomNote: str
:type magazine: str
:rtype: bool
"""
for i in ransomNote: #遍历 ransomNote中的元素时,因为这个已经定义了,所以不需要转化为列表进行遍历
if i in magazine:
magazine=magazine.replace(i,0,1)
else:
return False #这个return缩进有问题?但明显是正确的哇
return True
replace()方法语法:
str.replace(old, new[, max])
参数
old -- 将被替换的子字符串;
new -- 新字符串,用于替换old子字符串;
max -- 可选字符串,替换不超过max次。