0812京东算法岗笔试

投票
选择40分,三道编程题60分。
感觉这次做的比较抽象,第一道题没做出来,后两道题做出来。。。

第一题是给定一个字符串有如下两个操作
(a)把第一个挪到最后一个
(b)任意修改一个字符
问最少多少次操作可以等得到一个回文串
Q: 想着模拟先操作a后操作b,结果最多只能70%,可能还是要dp但是当时着急去写后面的就跳过了。有没有大佬共享下思路。

第二道题是给一个数组,每次可选两次操作
(a)选择最后两个数x,y。删除x,y 并且把x+y的个位数塞到最后
(a)选择最后两个数x,y。删除x,y 并且把x*y的个位数塞到最后
总过做n-1次,问最所有操作顺序中最后一个是0 - 9的次数,分别输出每个数字的次数
Q:这个比较简单,直接从最后往前模拟即可,但是有两个比较坑的边界case。n=1时有两种可能,一个是数组里面是0-9,这时候对应的结果里面为1,另外是数组的唯一一个数组大于9,这时候输出全零。

第三题是给定一个 n*m 的棋盘 有的是空位有的是棋子
要求选择4个棋子组成正方形。求所有的正方形数量(只要有一个棋子不一样就是新的)。
Q: 注意有斜着的正方形,因此要不重复遍历两个点作为固定的一个边,然后根据向量计算另外两个点的坐标看看是不是棋子,最后统计所有结果。
全部评论
我比较笨,为什么第二题n等于1的时候0-9就是1,9以上就是0呢,我直接取余了
点赞 回复 分享
发布于 2023-08-12 21:53 澳大利亚
为什么笔试完一直是待笔试状态呀
点赞 回复 分享
发布于 2023-08-21 06:56 湖南

相关推荐

神哥了不得:你简历字体有点不太协调呀,下面的字实在太小了呀,而且项目也不太行,建议换几个高质量的项目,面试会多很多
点赞 评论 收藏
分享
评论
5
17
分享

创作者周榜

更多
牛客网
牛客企业服务