腾讯数据分析笔试题目-9.5

  1. 摘果子-幂。给定两个数组a,b,判断b中的数字能否由a中两个不同的数进行幂运算得到。
    思路:自写pow函数;利用哈希字典。
  2. 求面积。求在平面直角坐标系下y=x**k,x+y=b(k>0,b>0)与x轴在第一象限围成的图形面积。
    思路:利用二分法求出两个函数在第一象限的交点;定积分求出第一部分面积+三角形面积。
  3. 数星星。给出一串由S T A R构成的字符串,求可以拼凑出多少个STAR,限制取出的S T A R 四个字母在原串中不能相邻。
    def star(n, s):
     dp = [[0 for i in range(4)] for i in range(n + 1)]
     for i in range(n):
         if i > 0:
             dp[i + 1][0] = dp[i][0]
             dp[i + 1][1] = dp[i][1]
             dp[i + 1][2] = dp[i][2]
             dp[i + 1][3] = dp[i][3]
         if s[i] == 'S':
             dp[i + 1][0] += 1
         if s[i] == 'T' and i > 0:
             dp[i + 1][1] += dp[i - 1][0]
         if s[i] == 'A' and i > 0:
             dp[i + 1][2] += dp[i - 1][1]
         if s[i] == 'R' and i > 0:
             dp[i + 1][3] += dp[i - 1][2]
     return dp[n][3]
    if __name__ == "__main__":
     n = int(input())
     s = input()
     print(star(n, s))
    #输入:
    #8
    #SSTTAARR
    #输出:5
  4. 跳棋。对于给定的n*m的格子,有红色和蓝色两种地毯,红色只能跳蓝色,蓝色只能跳红色,且只能走“日”,给定初始坐标后,计算出一共可以到达多少块地毯。
    不会。思路:dfs、bfs。
  5. 概率题。小A在玩一个网络游戏。这个游戏有个抽装备环节。装备池总共有 n + m 件装备,分别为 n 件普通装备和 m 件 ssr 装备。抽一次装备的费用按你抽中的装备决定。抽中每一件装备的概率都为1/( n + m )。如果你抽中了 ssr 装备。这次的抽装备费用为2金币,否则这次的费用为1金币。如果你抽中了 ssr 装备,得到奖励,并目装备不会放回。如果你抽中了普通装备。得到奖励,但是这件装备会放回装备池。现在小 A 希望抽中所有的 ssr 装备,请你计算一下:需要花费金币的期望值。
    输入描述:
    输入一行: n , m (1<= n , m <=10)
    输出描述:
    抽中所有的 ssr 装备,需要花费全币的胡望值输出保留2位有效小数。
    def square(n, m):
     res = 0
     for i in range(1,m+1):
         res += 1 / i
     ans = 2 * m + n * res
     return ans
    if __name__ == "__main__":
     n, m = list(map(int, input().split()))
     print('%.2f'%square(n, m))
    #输入:
    #2 1
    #输出:4.00
全部评论
谢谢~
点赞
送花
回复
分享
发布于 2021-09-22 23:31

相关推荐

1 7 评论
分享
牛客网
牛客企业服务