20221011 蚂蚁笔试 题解

20221011 蚂蚁笔试

第一题 好数

好数是指[0,99999]中每个数位都不相同的数,其中不足五位补前导零

例如02346,98765是好数,00001,99999不是

输入一个k,要求输出第k大的好数

题解

这题是唯一一个我没有ac的题,只过了66%,我想不到为什么暴力做法都过不了

q = []
for i in range(1234, int(1e5)):
    s = str(i)
    d = 5 - len(s)
    s = "0" * d + s
    if len(set(s)) == 5:
        q.append(int(s))
q.sort(reverse=True)
k = int(input())
print(k, q[k - 1])

第二题 丢桃子

输入一个n,范围[1,1e5],表示接下来有n行数据

输入x,y 表示第i个桃子坐标,范围[-1e9,1e9]

任意两个不同下标的桃子,只要横坐标相同或者纵坐标相同,可以得1分

就算是相同,也只能得1分。

题解

哈希表计算同一列和同一行的桃子数,还有一个哈希表计算重复坐标的桃子数

from collections import defaultdict
n = int(input())
row = defaultdict(int)
col = defaultdict(int)
seen = defaultdict(int)
res = 0
for i in range(n):
    x, y = map(int, input().split())
    res += row[x] + col[y] - seen[(x, y)]
    seen[(x, y)] += 1
    row[x] += 1
    col[y] += 1
print(res)

第三题

给定一个字符串s,长度[1,3e5]

好序列:长度为3,有两个字母相同,另外一个不同

求s有多少个子序列是好序列,结果需要对1e9+7取余

题解

从a到z枚举,当cnt[a]大于2的时候,我们从中间挑选2个,然后可以和其余任意字符搭配

即 cnt[ch] * (n-cnt[ch)

from collections import  Counter
from math import  comb
mod = int(1e9) + 7
s = input().strip()
n = len(s)
cnt = Counter(s)
res = 0
for i in range(ord('a'),ord('z')+1):
    ch = chr(i)
    if (v:=cnt[ch]) < 2:
        continue
    res += comb(v,2) * (n-v)
    res %= mod
print(res)

总结

挺简单的,就是第一题没过,很难接受

#蚂蚁##笔试##23届秋招笔面经#
全部评论
第一题貌似是01234~99999,1e6吧
2
送花
回复
分享
发布于 2022-10-11 20:35 陕西
第一题是因为如果最高温是0,只会输出后面四位数,比如1234要输出01234
1
送花
回复
分享
发布于 2022-10-11 20:38 浙江
滴滴
校招火热招聘中
官网直投
第二题也是这样三个哈希,但不知道为啥只过了80呜呜呜
1
送花
回复
分享
发布于 2022-10-11 20:58 重庆
就过了第一题,你可能是没有输出5位字符串
1
送花
回复
分享
发布于 2022-10-11 21:40 北京
做完满帮过来的 20分钟ak
1
送花
回复
分享
发布于 2022-10-12 08:58 四川
第一题不是数位dp?
点赞
送花
回复
分享
发布于 2023-03-21 16:24 山东

相关推荐

一、团队名称蚂蚁集团-信贷事业群-风险管理部 二、关于我们邀请你加入一个专业、严谨、创新的团队,我们是蚂蚁集团信贷事业群的风险管理部门,我们通过搭建智能化风控策略和数据知识驱动的模型体系为亿级消费者提供普惠金融的服务,我们管理着万亿级资产,致力于运用机器学习、深度学习、图计算、知识图谱、运筹优化、大模型等前沿算法和技术在风险管理领域里不断探索升级我们的智能风控核心能力,为消费金融服务保驾护航。在这里,你将与海内外著名高校毕业的校友,金融机构大牛,以及深耕互联网金融的行业精英们共同工作,持续尝试用新的算法与技术来提升消费者的体验。&nbsp;我们有强大的平台,优秀的团队,成熟的人才培养机制,欢迎你的到来!三、岗位类型&nbsp;【算法工程师】1.计算机、数学、统计、运筹学、金融、经济学或相关专业,硕士及以上学历优先。2.良好的编程功底,至少熟练使用C/C++、JAVA、Python、R等主流编程语言中的一门。3.熟悉机器学习、数据挖掘、统计学、运筹学中至少一个方向的主流算法及原理。4.较强的学习能力和逻辑性,良好的建模思维,对前沿技术有热情。5.具备以下一个或多个经验的优先:&nbsp;&nbsp;-参加各项比赛,包括但不限于ACM-ICPC、Kaggle、天池大赛瓶奖&nbsp;&nbsp;&nbsp;-在NIPS、ICML、KDD、AAAI、IJCAI等顶会上发表过论文&nbsp;&nbsp;&nbsp;-参与过知名开源项目,或参与过大模型应用,大型机器学习、数据挖掘项目&nbsp;&nbsp;&nbsp;-能够在Tensorflow、PyTorch、Spark等至少一种主流框架上开发算法。四、工作地点杭州 五、联系方式fenghaijie.fhj@antgroup.com
投递蚂蚁集团等公司10个岗位
点赞 评论 收藏
转发
3 13 评论
分享
牛客网
牛客企业服务