• 求解整数集合的交集(腾讯笔试)


    问题描述:

    A,B两个整数集合,设计一个算法求他们的交集,尽可能高效。

    问题分析:

    用哈希表,遍历集合A,构造一个哈希表,在遍历集合B,从哈希表中查询,如果存在即保存该元素。

    时间复杂度O(n+m) (n,m分别是A,B集合长度)

    Python求解查找出现一次字符问题(2016奇虎笔试题)

    Python实现(用到了内置函数字典dict) 

    def combine(li1,li2):
        d = dict()
        for ch in li1:
            d[ch] = d.get(ch,1)
        chs = [c for c in li2 if d.get(c) != None]        
        return chs

    测试样例:

    l1 = [1,2,3,4,5,9,8]
    l2 = [2,3,7,8,9,10]
    print(combine(l1,l2))

    输出结果:

    [2, 3, 8, 9]

    下面是2016奇虎笔试题,用的是相同方法(字典dict)解决

    题目描述:

    在给定的字符串,找出其中只出现一次的字符,如果有多个这样的字符,就全部找出来

    注意字典dict()的get用法

    Python实现

    def search(s):
        d = dict()
        for ch in s:
        #如果这个自出出现过 则加1
        #如果这个字符第一次出现,0+1
            d[ch] = d.get(ch,0) + 1
        chs = [ch for ch,n in d.items() if n==1]
        return chs

    测试样例

    arrays = 'asdfghvnjtryuisdgfsbcbvnp'
    arrays2 = 'ddfgewrweytrbbnytruetreczplo'
    print(search(arrays))
    print(search(arrays2))

    输出:

    ['y', 'h', 't', 'r', 'p', 'j', 'c', 'i', 'a', 'u']
    ['l', 'c', 'g', 'f', 'p', 'o', 'z', 'n', 'u']

  • 相关阅读:
    嵌入式软件设计第12次实验报告
    嵌入式软件设计第11次实验报告
    嵌入式第十次实验报告
    嵌入式第九次实验报告
    作业二:个人博客作业内容:需求分析
    嵌入式软件设计第8次实验报告
    嵌入式软件设计第7次实验报告
    自我介绍
    实习总结(第四周)
    个人博客作业三:微软小娜APP的案例分析
  • 原文地址:https://www.cnblogs.com/lateink/p/6483659.html
Copyright © 2020-2023  润新知