我一直在制作一个扑克模拟器,并且设法制作了一个函数,该函数可以识别具有连续数字的数组。

def straightCheck(playerHand):
    playerHand.sort()
    print(playerHand)
    for i in range(len(playerHand)-1):
        if playerHand[i] != playerHand [i+1] - 1:
            return False
            print(handstrength)
    return True
    print(handstrength)


唯一的问题是,当数组的长度大于5时,我希望函数识别数组中的5个连续数字。例如:我希望数组[1,2,3,4,5,6,7]返回True,但我也希望数组[1,3,4,5,6,7,9]返回True。

最佳答案

您过早返回False。取而代之的是,您可以保持到目前为止所看到的连续数字的数量,并在遇到破坏连胜的数字时将其重置。

def straightCheck(playerHand):
    playerHand.sort()
    tally = 1
    for i in range(len(playerHand)-1):
        if playerHand[i] != playerHand [i+1] - 1:
            tally = 0
        tally += 1
        if tally >= 5:
            return True
    return False

关于python - 如何识别数组中只有一定数量的数字是连续的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33203500/

10-13 08:53