目录

  • 目录
  • 前言
  • 题目一
    • 分析
    • 实现
  • 题目二
    • 分析
    • 实现

前言

朋友到阿里面试,分享两道小题,博主比较闲就试着用 Python 解答一下,实现方式肯定是多种多样的,优劣也会各有不同,欢迎交流。

题目一

三个线程交替打印 abcabcabc…,一个打印 a,一个打印 b,一个打印 c。

分析

典型的线程同步问题,解决思路是互斥锁,三个线程通过锁来完成互斥下的协作同步。

实现

import threadinglock_a = threading.Lock()
lock_b = threading.Lock()
lock_c = threading.Lock()def print_a(num):if num < 0:returnlock_a.acquire()print('a')lock_b.release()print_a(num-1)def print_b(num):if num < 0:returnlock_b.acquire()print('b')lock_c.release()print_b(num-1)def print_c(num):if num < 0:returnlock_c.acquire()print('c')lock_a.release()print_c(num-1)def main():num = 9thread_a = threading.Thread(target=print_a, args=(num,))thread_b = threading.Thread(target=print_b, args=(num,))thread_c = threading.Thread(target=print_c, args=(num,))lock_b.acquire()lock_c.acquire()thread_a.start()thread_b.start()thread_c.start()if __name__ == '__main__':main()

题目二

有一个 String 类型数组 arr = { "a", "b", "d", "d", "a", "d", "a", "e", "d", "c" },请编码实现统计该数组中字符重复次数并由多到少的顺序对 a,b,c,d,e 重新排序输出。

分析

如果用 C 语言实现,那么姑且还是一道冒泡排序算法题。对于 Python 而言,这题就是比较单纯的熟练度考验,使用 collections 模块可以轻松实现。

实现

from collections import Counterli1 = ["a", "b", "d", "d", "a", "d", "a", "e", "d", "c"]
print(Counter(li1))

from collections import defaultdict
from collections import OrderedDictli1 = ["a", "b", "d", "d", "a", "d", "a", "e", "d", "c"]
d = defaultdict(int)for k in li1:d[k] += 1
print OrderedDict(sorted(d.items(), key=lambda t: t[1], reverse=True))

转载于:https://www.cnblogs.com/jmilkfan-fanguiju/p/10589764.html

用 Python 解答两道来自阿里伯乐系统的笔试题相关推荐

  1. 两道大众点评网技术部的笔试题

    技术部全职-研发工程师问题测试(答题时间45分钟) 共两道题目,为必答题 问题: 如何快速比较这两个字符串是否相等?两个字符串相等的条件如下,字符串中的每个字母出现的次数都相等.例如:abbcd和ac ...

  2. 阿里校招 数据分析师 笔试题

    2015年8月19日,阿里校招数据分析师笔试题.共计21题(貌似统计漏了一题,应该是单选少了一题,凑合看吧),选择题每个人的都不一样,问答题是一样的.暂时没有答案,希望对大家有用. 单选题: 1观测宇 ...

  3. 深圳Java学习:分享几道真实的企业Java工程师笔试题

    深圳Java学习:分享几道真实的企业Java工程师笔试题,你都会做吗?

  4. 九月十月 阿里 百度 华为 校招笔试题

    九月迅雷,华为,阿里巴巴,最新笔试面试十题 8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的     i .每次从通里面 ...

  5. 【撷英采华】阿里面试Linux基础笔试题-含答案

    文章目录 一. 阿里面试流程 二. 阿里原题限时答题 三. 参考答案: 四. 总结 一. 阿里面试流程 阿里的面试一般分为笔试和电话面试. 很多大的外包公司都在帮阿里招聘,所以他们的候选人很多. 所以 ...

  6. 【前端】2015阿里前端实习生在线笔试题

    网上找的题,自己做了做. ... 2015阿里巴巴前端实习生在线笔试题 1. (单项选择)对于下列程序运行结果,符合预期的是 function f1() { console.time('time sp ...

  7. 三天打鱼两天晒网python程序设计_Python经常会遇到三天的笔试题:钓鱼和两天的晒网:,之,三天打鱼,两天晒网...

    问题概述:中国有句俗语叫"三天打鱼两天晒网"某人从1990年1月1日起开始"三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是&qu ...

  8. java常见面试题及答案(基础题122道,代码题19道),java高级面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  9. 2019阿里秋招一道笔试题(关于火柴拼出最大数字) - Android开发岗

    题目描述: 使用火柴组成一个最大的数字, 规定: 可组成的数字 1 2 3 4 5 6 7 8 9 所需火柴数量 2 5 5 4 5 6 3 7 6 给定火柴总数m, 组成n位数字, 输出可以组成的最 ...

最新文章

  1. 使用 Global.asax 文件
  2. 成功解决ImportError: cannot import name 'pywrap_tensorflow'
  3. Vs2010与VC的区别
  4. java 链表反转_剑指BAT:如何最优雅着反转单链表?
  5. tensorflow神经网络结构可视化
  6. 如何在Windows上设置BitLocker加密
  7. 条令考试小程序辅助器_可以自己编题的答题软件,自定义题库考试出题工具,微信答题小程序...
  8. STM32工作笔记0012---认识老化试验
  9. 舰船目标检测的学习笔记
  10. 一个基于protobuf的极简RPC
  11. xml建模包括以下_数据挖掘--建模与挖掘的结合
  12. 腾讯发布三项息争前提 360将扣扣保镖下线
  13. 回溯法之旅行商问题解题思路详解
  14. 零线和地线的区别、示波器如何测量市电
  15. jedispool的使用
  16. HTML5编写格式命令详解
  17. 后代选择器和子代选择器
  18. 数学建模常见算法:拟合算法
  19. Windows和Linux上的管道符
  20. 【面试】MyBatis面试题

热门文章

  1. 帧中继(Frame relay /FR)
  2. MVC经典框架结构图
  3. Chrome代理管理器插件
  4. linux编写一个博客脚本,Linux 脚本编写基础 - 凌度 - 博客园.pdf
  5. 学习 Python 的 5 大理由
  6. Java Email以及发送Email附件
  7. saspython知乎_python 被神化了么?
  8. 如何减少电壁挂炉的电用量—五妙招教你巧省电
  9. 垂直滤波和水平滤波的区别_巴特沃斯、切比雪夫、贝塞尔滤波器的区别
  10. Chrome浏览器flash player问题的终极解决方案