劍指offer 46 撲克牌順子

2021-08-09 20:00:43 字數 1278 閱讀 8579

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。

按照字典把數字儲存,記錄數字出現個數。如果乙個非零數字出現超過一次,則返回false。再統計數字之間的gap,看0是否能夠完全填充gap。如果不能填充,返回false。

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

class

solution:

defiscontinuous

(self, numbers):

# write code here

if len(numbers) == 0:

return

false

numbers_dict = {}

for tmp in numbers:

if tmp in numbers_dict.keys():

if tmp != 0:

return

false

else:

numbers_dict[tmp] += 1

else:

numbers_dict[tmp] = 1

numbers_list =

gap_count = 0

pre_num = 0

for i in range(1, 14):

if i in numbers_dict.keys():

if pre_num == 0:

pre_num = i

else:

if i != pre_num + 1:

gap_count += i - pre_num - 1

pre_num = i

if gap_count == 0:

return

trueif0

in numbers_dict.keys() and numbers_dict[0] >= gap_count:

return

true

return

false

劍指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...

劍指offer 撲克牌順子

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