[2021秋招笔试记录]哔哩哔哩_9.4_算法

编程题

题目一

求最长回文字串

题目二

数组的最大连续和

题目三

大鱼吃小鱼:
一次操作中,体积大的鱼会吃掉后面第一个比它小的鱼,
如[6,5,4]一次操作后只剩6,6吃5,5吃4
问几次操作后,鱼的数量才不变?
输入:
3(N)
1,2,3
输出:
0

输入:
6
4,3,2,3,2,1
输出:
2
[4,3,2,3,2,1] --> [4,3] -->[4]

AC的代码

def fishGame(sizes):
    if sorted(sizes) == sizes:
        return 0
    if sorted(sizes)[::-1] == sizes:
        return 1
    newSize = []
    while sizes:
        i = 0
        while i < len(sizes)-1 and sizes[i+1] < sizes[i]:
            i += 1
        newSize.append(sizes[0])
        sizes = sizes[i+1: ]
    res = 1+fishGame(newSize)
    return res
N = int(input())
data = list(map(int, input().split(' ')))
print(fishGame(data))

你可能感兴趣的:([2021秋招笔试记录]哔哩哔哩_9.4_算法)