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

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

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年春招笔试面试记录 文章被收录于专栏

记录一下春招的笔面试

全部评论

相关推荐

叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
5
10
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务