Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the magazines ; otherwise, it will return false.

Each letter in the magazine string can only be used once in your ransom note.

Example 1:
Input: ransomNote = "a", magazine = "b"
Output: false

Example 2:
Input: ransomNote = "aa", magazine = "ab"
Output: false

Example 3:
Input: ransomNote = "aa", magazine = "aab"
Output: true

Constraints:
You may assume that both strings contain only lowercase letters.

Solution in python:

class Solution:
    def canConstruct(self, ransomNote: str, magazine: str) -> bool:
        adic = {}
        for i in range(len(magazine)):
            if magazine[i] not in adic.keys():
                adic[magazine[i]] = 1
            else:
                adic[magazine[i]] += 1
        for i in range(len(ransomNote)):
            if ransomNote[i] not in adic.keys():
                return False
            else:
                adic[ransomNote[i]] -= 1
                if adic[ransomNote[i]] < 0:
                    return False
        return True
最后修改日期: 2021年1月26日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。