京东笔试 京东笔试第三题 漂亮串

关于第三题 求大神指导 自己想的对不对
漂亮串我想到了思路 但是一直不知道怎么在O(1)的时间计算出排列组合
首先漂亮串必须大于等于6 
那么如果n >=6 那么这里面可以包含[2, n / 3]个red 
我们分别计算[2, n / 3]有多少种排列组合
假设当前red = 2 那么考虑这两个red怎么放 然后乘以(n - red * 2)^26
假设当前red = 3 那么考虑这三个red怎么放 然后乘以(n - red * 3)^26
假设当前red = 4 那么考虑这四个red怎么放 然后乘以(n - red * 4)^26
...
直到 red = n / 3
问题就是怎么去计算red的个数确定后 red有多少种方法,也就是如何在O(1)的复杂度中从n个数中选出k个不重叠的区间且区间的长度= 3
然后指数运算时用快速幂算法 
有没有大佬指点下 这个对吗?

#京东##java##京东笔试#
全部评论
用总的减去没有一个red的再减去有一个red的就行了
3
送花
回复
分享
发布于 2022-08-27 21:36 湖南
啊?是我读错题了吗,我想的是只要保证两个red就行,其它26个字母随便选,只过了20%
2
送花
回复
分享
发布于 2022-08-27 21:20 甘肃
滴滴
校招火热招聘中
官网直投
我觉得只用保证字符串中包含两个red就行,其他位置全排列,每个位置有26种情况
点赞
送花
回复
分享
发布于 2022-08-27 21:21 新疆
会重复的 在大于等于9的时候,red___red ,redred___,___redred,都会有redredred的情况
点赞
送花
回复
分享
发布于 2022-08-27 21:25 辽宁
我就过了6.67 g了
点赞
送花
回复
分享
发布于 2022-08-28 15:10 广东
TP-LINK【投递通道】hr.tp-link.com.cn 内推码:ML103HY
点赞
送花
回复
分享
发布于 2022-08-29 16:11 安徽

相关推荐

投递恒生电子股份有限公司等公司7个岗位
点赞 评论 收藏
转发
点赞 6 评论
分享
牛客网
牛客企业服务