Hackerrank | Hash Tables: Ransom Note解答

本文介绍了如何使用Python的字典数据结构解决Hackerrank的Hash Tables: Ransom Note问题。作者经历了三次尝试,最终通过字典实现成功降低时间复杂度,避免了数组操作导致的时间超限错误。
摘要由CSDN通过智能技术生成

Hash Tables: Ransom Note原题点这里

第一次尝试:失败
def checkMagazine(magazine, note):
    for word in note:
        if word in magazine:   
            magazine.remove(word)  
        elif word not in magazine:
            print('No')
            return
    print('Yes')                  

非常直白的逻辑,可惜时间复杂度是O(mn),测试时有三个test cases出现timeout error。究其原因,还是array的remove操作太慢,最坏情况需要O(n)时间。

第二次尝试:失败
def checkMagazine(magazine, note):
    col1=set(magazine)
    col2=set(note)
    if col2.difference(col1)==set():
        print('Yes')
    else:
        print('No')

第二次,想到了利用数据结构集合的特性来直接检

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值