如何识别数组中是否只有一定数量的数字是连续的

2024-09-22 16:38:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在做一个扑克模拟器,我已经设法使一个函数,可以识别一个数组,其中有连续的数字。你知道吗

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。你知道吗


Tags: 函数trueforreturndef数字数组模拟器
3条回答

现在检查数字是否不连续,然后返回false。我想你最好检查一下数字是不是连续的,如果是的话,请调一个计数器,如果不是的话,请重新设置。这样你就知道有多少个数字是连续的。如果是5或更高,你应该返回真。你知道吗

如果您有一个工作函数,您可以在一个循环中处理所有的5卡集:

for i in range(len(values) - 4):
    is_straight = straightCheck(values[i:i+5])
    if is_straight:
        break
print(is_straight)

你来得太快了。相反,你可以保持一个连续计数的数量,你已经看到迄今为止,并重置它,当你遇到一个数字,打破了连胜。你知道吗

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

相关问题 更多 >