
OD技术面答案整理python
扶桑照槛
这个作者很懒,什么都没留下…
展开
-
抽牌获胜的概率
对于每张牌,如果当前点数加上点数在1-13之间的概率大于等于21,且小于25,那么在抽取这张牌后,点数落在 \[21, 24) 的概率就是这张牌的概率。* 否则,`dp[i]` 是 `dp[i-1] * (13/13)` 加上 `dp[i-1] * (1/13) * (1 if 21原创 2024-04-30 11:24:02 · 315 阅读 · 0 评论 -
搬运货箱的方案
我们可以用一个动态规划数组 `dp[i][j]` 来表示从第 `i` 个货箱开始,且前 `j` 个货箱可以分为三堆的方法数。其中 `i` 是当前考虑的货箱,`j` 是前一堆的最后一个货箱的索引。* 如果 `j` 等于 2,那么三堆重量可以是 `boxes[i]`、`boxes[i]` 和 `0`,`dp[i][j]` = 1(因为只有这一种可能)。* 如果 `j` 大于 2,我们需要遍历所有可能的分割点 `k`(1原创 2024-04-30 11:08:31 · 446 阅读 · 0 评论 -
消除重复字符得到的最大分数
例如”ABCCBCCAA”经过一轮消除得到“ABB”,再经过一轮消除得到“A”在消除开始前有机会在s中任意位置(第一个字符之前、最后一个字符之后以及相邻两个字符之间)插入输入的一个字符(‘A’,‘B’或者‘C’),得到字符串t。字符串消除后,游戏最终得分是消除掉的字符的总数。计算要如何插入字符,才能获得最高得分。有一个字符消除游戏,给定一个只包含大写字母‘ABC’的字符串s,消除过程是如下进行的:如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。原创 2024-04-30 10:21:13 · 263 阅读 · 0 评论 -
模拟实现火车牌
模拟实现火车牌,双方各有自己的牌库,双方轮流顺序出牌,把出的牌交替、顺序摆放,当出牌时出到一样的,就收回两张相同牌之间的所有牌放到自己的牌库,有一方牌库清空则对方胜利。返回胜利方、回合数、胜利方的剩余牌情况。下面代码中,我们模拟了火车牌游戏的过程。玩家1和玩家2分别有自己的牌库,每回合轮流出牌,直到有一方牌库清空。最后输出胜利方、回合数以及胜利方剩余的牌情况。可以根据需要修改初始牌库来进行不同的测试。原创 2024-04-30 11:29:14 · 155 阅读 · 0 评论 -
给定两个字符串s1和s2,问s2最少删除多少字符可以成为s1的子串?
比如 s1 = "abcde",s2 = "axbc"返回1。s2删掉'x'就是s1的子串了。给定两个字符串s1和s2,问s2最少删除多少字符可以成为s1的子串?原创 2024-04-30 10:37:28 · 298 阅读 · 0 评论