前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一则面试题

一则面试题

作者头像
雷子
发布2021-03-15 16:18:01
2610
发布2021-03-15 16:18:01
举报
文章被收录于专栏:雷子说测试开发

题解一道面试题目,面试官给我出来了一个面试题,题目是这样的

代码语言:javascript
复制
给定两个list,list里面是字典,然后需要对字典进行去重复后输出。
要求利用递归方式去实现。

我第一个版本给出来的是不带递归的,我给出来的方案是:

代码语言:javascript
复制
def sortlist(listone:list,listtwo:list)->list:
    dictone = {}
    if len(listone)==0:
        return listtwo
    elif len(listtwo)==0:
        return listone
    else:
        for i in listone:
            if isinstance(i,dict):
                for key,value in i.items():
                    if key not in dictone:
                        dictone[key]=value

        for j in listtwo:
            if isinstance(j,dict):
                for key_j,value_j in j.items():
                    if key_j not in dictone:
                        dictone[key_j]=value_j
        return  [dictone]
if __name__=="__main__":
    print(sortlist([{"a":1,"b":2}],[{"b":3,"c":1}]))

最后验证输出,给出来的答案是对的

代码语言:javascript
复制
[{'a': 1, 'b': 2, 'c': 1}]

但是必须要求使用递归,我就得要修改我的代码了,当然了,面试过程中回答出来的答案是错误的。但是那个方案,采用了我之前开发测试平台的思想,但是不错,灵活运用没有把握好,回答的有点最后输出结果是不对的,带入了递归,但是结果不对,整个题目相当于失分的题目

代码语言:javascript
复制
def sortlist(*args)->list:
    dictone = {}
    for item in args:
        if len(item)==0:
            return []
        else:
            if isinstance(item,list):
                for k in item:
                    if isinstance(k,dict):
                        for key, value in k.items():
                            if key not in dictone:
                                dictone[key] = value
                            else:
                                sortlist(item)
            elif isinstance(item,dict):
                sortlist(item)
    return [dictone]
if __name__=="__main__":
    print(sortlist([{"a":1,"b":2}],[{"b":3,"c":1}]))

这样的结果是对的,也用了递归,但是我感觉这里用递归仿佛复杂了,不知道是不是还有更优的解法,我现在慢慢试着去优化这里面的代码,没有感觉递归在这里用的效率在那里。

面试就是这样,面试官出来的考题,有时候我会觉得不合理。反正二次修改后,回答给面试官的答案是不对的,这点我是肯定的。最后这个面试就是挂掉的感觉。

面试前面还是要多刷一些算法的题的,学会举一反三,平时注重了去开发,提高自己的开发技能,但是往往会忽略这些最简单的算法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档