查看是否为等差序列

刷知乎的时候看到的题目,思路是评论区大佬给的

有点像排序里的计数排序法

代码如下

def isArithmeticSequence(A):
    B = [0] * len(A)
    min_value = min(A)
    max_value = max(A)
    d = (max_value - min_value) // (len(A) - 1)
    for i in A:
        if (i - min_value) % d == 0:
            seq_num = (i - min_value) // d
            B[seq_num] = 1
    if sum(B) == len(A):
        return True
    else:
        return False

if __name__ == '__main__':
    A = input("A sequence of numbers:\n")
    A = [i for i in map(int, A.strip().split())]
    if isArithmeticSequence(A):
        print("Yes")
    else:
        print('No')
    

猜你喜欢

转载自www.cnblogs.com/AcodingDg/p/10197546.html
今日推荐