例8、勒索信
1、问题描述
给定一个表示勒索信内容的字符串和另一个表示杂志内容字符串,写一个方法判断能否通剪下杂志中的内容构造出这封勒索信,若可以则返回true,否则返回false。
注:杂志字符串中的每一个字符仅能在勒索信中使用一次
2、问题示例
输入ransomNote = “aa”,magazine = “aab”,输出True,勒索信的内容可以从杂志内容剪辑而来
3、代码实现
class Solution:
"""
参数ransomNote为字符串
参数magazine为字符串
返回布尔类型
"""
def canConstruct(self, ransomNote, magazine):
arr = [0] * 26
for c in magazine:
arr[ord(c) - ord('a')] += 1
for c in ransomNote:
arr[ord(c) - ord('a')] -= 1
if arr[ord(c) - ord('a')] < 0:
return False
return True
#主函数
if __name__ == '__main__':
s = Solution()
ransomNote = "aa"
magazine = "aab"
print("输入勒索信为:",ransomNote)
print("输入杂志内容:",magazine)
print("输出为:",s.canConstruct(ransomNote,magazine))