def can_construct(ransom_note, magazine): frequency = {} for char in magazine: if char in frequency: frequency[char] += 1 else: frequency[char] = 1 for char in ransom_note: if char not in frequency or frequency[char] == 0: return False else: frequency[char] -= 1 return True # driver code def main(): ransom_notes = [ 'aab', 'hello', 'letsgothere', 'weneedtogetitdone', 'youhaveakindheart' ] magazines = [ 'abcva', 'helhoidde', 'edttsgftothsereleed', 'eunwueeydtwogyewbtitovnxe', 'abecdefghiavjklmaonopqhrtuvweaxyz' ] for i in range(len(ransom_notes)): print(i + 1, ".\t Ransom note: ", ransom_notes[i], sep="") print("\t Magazine : ", magazines[i], sep="") print("\n\t Can ransom note be constructed from magazine: ", can_construct(ransom_notes[i], magazines[i]), sep="") print("-" * 100) if __name__ == '__main__': main()