题目描述:
即判断输入nums中的5个数字是否连续,其中0可以转化为任何数字。
题解:
1.确定输入nums对应的范围,maxnum=max(nums),minnum=maxnum-4(minnum应该由maxnum确定,因为可能nums中存在0)
2.将minnum到maxnum对应的数字保存在一个数组tomatch中。
3.计算nums中0的个数zero_num。
4.依此判断tomatch[i]是否在nums中存在,记录找到的个数matchnum。
5.用总数5减去matchnum,判断是否等于zero_num,相等返回True,否则返回False。
class Solution: def isStraight(self, nums: List[int]) -> bool: zero_num = 0 for i in range(5): if nums[i] == 0: zero_num = zero_num + 1 maxnum = max(nums) minnum = maxnum - 4 tomatch = [] for i in range(minnum, maxnum + 1): tomatch.append(i) match_num = 0 for i in range(4, -1, -1): if tomatch[i] in nums: match_num = match_num + 1 if 5 - match_num == zero_num: return True return False