码迷,mamicode.com
首页 > 其他好文 > 详细

查看是否为等差序列

时间:2018-12-29 19:43:37      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:return   split   strip()   cse   seq   col   int   def   class   

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

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

代码如下

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)
    

 

查看是否为等差序列

标签:return   split   strip()   cse   seq   col   int   def   class   

原文地址:https://www.cnblogs.com/AcodingDg/p/10197546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!