劍指Offer刷題筆記 撲克牌順子

2021-09-26 08:10:44 字數 1154 閱讀 5601

ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王(一副牌原本是54張?)...他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!!「紅心a,黑桃3,小王,大王,方片5」,「oh my god!」不是順子.....ll不高興了,他想了想,決定大\小 王可以看成任何數字,並且a看作1,j為11,q為12,k為13。上面的5張牌就可以變成「1,2,3,4,5」(大小王分別看作2和4),「so lucky!」。ll決定去買體育彩票啦。 現在,要求你使用這幅牌模擬上面的過程,然後告訴我們ll的運氣如何。為了方便起見,你可以認為大小王是0。

這題說了一堆,提取主要資訊,我們不難整理出,滿足如下條件才可以認為是順子:

輸入資料個數為5;

輸入資料都在0-13之間;

沒有相同的數字;

最大值與最小值的差值不大於5。

ps:大小王可以當成任意數。

# -*- coding:utf-8 -*-

class solution:

def iscontinuous(self, numbers):

# write code here

if len(numbers) < 5:

return false

max_num = -1

min_num = 14

flag =

for number in numbers:

if number < 0 or number > 13:

return false

# 如果抽到大小王就不用判斷

if number == 0:

continue

# flag儲存已經抽出的數字,順子不能有重複的

if number in flag:

return false

# 更新最大小數值

if number < min_num:

min_num = number

if number > max_num:

max_num = number

# 最大值減去最小值大於5,說明就不能組成順子

if max_num - min_num >= 5:

return false

return true

劍指offer刷題 撲克牌順子

題目 從撲克牌中隨機抽取張牌,判斷是不是乙個順子,即這張牌是不是連續的,2 10為數字本身,a為1,j為11,q為12,k為13,而大王小王可以看成任意的數字。首先我們認為大王和小王為數字0,首先我們統計0的個數,然後將陣列排序,並且判斷中間缺的數的個數比0的個數多還是少,如果比0的個數多,那麼就不...

劍指offer 撲克牌順子

ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王 一副牌原本是54張 他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!紅心a,黑桃3,小王,大王,方片5 oh my god 不是順子.ll不高興了,他想了想,決定大 小...

劍指offer 撲克牌順子

劍指offer 撲克牌順子.cpp 定義控制台應用程式的入口點。題目描述 輸入五個數字,0可以代表任何數,問這五個數字是否是乙個順子 思路 排序後計算非0的相鄰兩個數之間的距離 gap 然後與0 大小王 的數量進行比較,看是否小於這個count include stdafx.h include ve...