python 勒索信
描述
在一本杂志中剪切出一些字母,构成一封勒索信的内容。写一个方法判断杂志的内容能否构成这封勒索信,如果可以,返回True;否则返回False。要求杂志字符串中的每一个字符仅能在勒索信中使用一次。
方法一:统计字符数量
# 勒索信
def demo8(ransomnote, magazine):
chardict = [0]*26
# 统计字符数量
for c in magazine:
chardict[ord(c)-ord('a')] += 1
for ch in ransomnote:
i = ord(ch)-ord('a')
chardict[i] -= 1
if chardict[i] < 0:
return False
return True
方法二:剪切字符串
# 勒索信2
def demo8_2(ransomnote, magazine):
s1 = magazine
for a in ransomnote:
# 剪切后拼接
s = ''.join(s1.split(a, 1))
if s == s1:
return False
s1 = s
return True