赎金信(判断一个字符串是都可以通过另一个字符串进行转化)

 

这个题目属于简单的类型,使用字典来进行词频统计,如果ransomNote 中key的个数大于magazine,或者ransomNote的key在magazine中找不到,就返回False。

class Solution:
    def canConstruct(self, ransomNote: str, magazine: str) -> bool:
        m_dict={}
        r_dict={}
        # 统计ransomNote和magazine字母出现的个数

        for m_i in magazine:
            if m_i not in m_dict:
                m_dict[m_i]=1
            else:
                m_dict[m_i]+=1
        
        for r_i in ransomNote:
            if r_i not in r_dict:
                r_dict[r_i]=1
            else:
                r_dict[r_i]+=1
        
        flag=True
        for r_key,r_value in r_dict.items():
            # 如果 ransomNote 字符出现的个数大于 magazine字符出现的个数 或者 ransomNote中的字符 在magazine中没有 直接break
            if r_key not in m_dict or r_value>m_dict[r_key]:
                flag=False
                break
        return flag
            

 

posted @ 2024-08-19 15:35  TW-NLP  阅读(5)  评论(0编辑  收藏  举报