春招第四次算法面试--小米

小米测开的笔试算法题很简单

1.第一题

题目很简单,给一串小字符串和一个大字符串

判断小字符串能不能拼接成大字符串

def read_every_t():
    n, L = input().split(" ")
    n, L = int(n), int(L)
    s = []
    
    s.extend(input().split(" "))
    print(s)
    assert len(s) == n
    un_use = [True] * n
    mubiao = input()
    index = 0
    has_flag = False
    while True:
        for i in range(len(s)):
            print(s[i], index, len(mubiao))
            if s[i][0] == mubiao[index] and un_use[i]:
                if s[i] == mubiao[index:index+len(s[i])]:
                    un_use[i] = False
                    index += len(s[i])
                    has_flag = True
                    break
        if index >= len(mubiao):
                return True
        elif has_flag == False:
                return False

if __name__=="__main__":
    t = int(input())
    for _ in range(t):
        is_ok = read_every_t()
        if is_ok:
            print("True")
        else:
            print("False")

2.第二题

题目,给出一个数组 [2,3,4,5,7,11,15,17,19,...,an] 是必须呆在山上的天数

n 是能在山上待的天数

求最少上下山几次

# 1 上
# 6 下
# 9 上
# 11 下
n, k = input().split(" ")
n, k = int(n), int(k)
days = list(map(int, input().split(" ")))
# print(days)
assert n == len(days)
the_day_under = days[-1] - k
# print(the_day_under)
heap = []
for i in range(1, len(days)):
    free_days = days[i] - days[i-1] - 1
    if free_days > 0:
        heap.append(free_days)

heap = sorted(heap, reverse=True)
for i in range(len(heap)):
    the_day_under -= heap[i]
    if the_day_under <= 0:
        print((i+2) * 2)
        break

25年春招面试记录 文章被收录于专栏

记录一下春招的笔面试

全部评论

相关推荐

昨天 20:56
湘潭大学 Java
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客企业服务