各大计算机公司 笔试及面试 题目 - 阿里巴巴

本文探讨了几个数学和编程难题,包括人口比例问题、时间角度计算、毒水查找和字符串子串搜索。涉及算法优化和数据结构应用,旨在提升逻辑思维与问题解决能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

备注: 转至 周磊的博客,http://blog.youkuaiyun.com/v_JULY_v/article/details/6313257


1、澳大利亚的父母喜欢女孩,如果生出来的第一个女孩,就不再生了,如果是男孩就继续生,直到生到第一个女孩为止,问若干年后,男女的比例是多少?


2、3点15的时针和分针的夹角是多少度


3、有8瓶水,其中有一瓶有毒,最少尝试几次可以找出来


4、 给一篇文章,里面是由一个个单词组成,单词中间空格隔开,再给一个字符串指针数组,比如 char *str[]={"hello","world","good"};
求文章中包含这个字符串指针数组的最小子串。注意,只要包含即可,没有顺序要求。
分析:文章也可以理解为一个大的字符串数组,单词之前只有空格,没有标点符号。
解决思路 1:
维护 一个队列+KMP算法
让字符的全部序列入队,比较完一个就出队,保持长度
至于字符串的六种序列,实现排列预处理,
最后,时间复杂度为:O(字符事先排列)+O(KMP 比较)。

解决思路2:
这个用kmp算法的话,明显不如用trie好;
将str 中的成员建一棵trie树,这样的话字符事先不需要排序,复杂度应该低些。

解决思路3:
我觉得这个应该用DFA(即有限状态自动机)。


80.阿里巴巴一道笔试题(运算、算法)

问题描述:
12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?
这个笔试题,很YD,因为把某个递归关系隐藏得很深。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值