问题描述
在一本杂志中剪切出一些字母,构成一封勒索信的内容。写一个方法判断杂志的内容能否构成这封勒索信,如果可以,返回True;否则返回False。要求杂志字符串中的每一个字符仅能在勒索信中使用一次。
示例
输入 ransomnote='abc', magazine='whatsupcleverbaby' ,输出 True ,即表示勒索信的内容可以从杂志中剪辑下来。
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
def ransomnote_construct(ransomnote, magazine): # ransomnote: 勒索信内容 # magazine: 杂志内容 # 返回布尔值 alpha_list = [0]*26 # 计数26字母出现次数 for i in magazine: alpha_list[ord(i)-ord('a')] += 1 for j in ransomnote: alpha_list[ord(j)-ord('a')] -= 1 if alpha_list[ord(j)-ord('a')] < 0: return False return True ransomnote = 'abc' magazine = 'whatsupcleverbaby' print("输入勒索信:", ransomnote) print("输入杂志:", magazine) print("输出:", ransomnote_construct(ransomnote, magazine)) |
运行结果
1 2 3 |
输入勒索信: abc 输入杂志: whatsupcleverbaby 输出: True |