刷題 撲克牌順子

2021-08-20 12:52:11 字數 1606 閱讀 7443

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。

思路一:保證除了0以外沒有重複的數字,max-min<5。

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

class

solution:

defiscontinuous

(self, numbers):

# write code here

counter = numbers.count(0)

if counter == 4:

return

true

else:

numbers = [item for item in numbers if item != 0]

temp = set(numbers)

if len(temp) < 5 - counter:

return

false

else:

maximum = max(numbers)

minimun = min(numbers)

if maximum - minimun < 5:

return

true

else:

return

false

思路二:排序,統計0的個數,統計陣列中相鄰數字間的空缺總數,看0的個數能不能滿足空缺總數的需要。

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

class

solution:

defiscontinuous

(self, numbers):

# write code here

if numbers:

numbers.sort()

counterofzero = numbers.count(0)

i = counterofzero

j = i + 1

counterofgap = 0

while j < len(numbers):

if numbers[i] == numbers[j]:

return

false

else:

counterofgap += numbers[j] - numbers[i] - 1

i = j

j = i + 1

if counterofzero >= counterofgap:

return

true

else:

return

false

else:

return

false

刷題之路 撲克牌順子

給出五張牌,判斷是不是順子,大小王再陣列中認為是0,可以當任何牌。看似是要排序之後判斷是不是順子,實際上可以完全從順子的定義入手,去判斷這組數字可否成為順子。五個數可否成為順子的條件 1 最大值與最小值差值不大於5 因為有大小王的規則,不能嚴格定義成最大值與最小值差值為4 2 不能有重複的數字 3 ...

刷演算法 撲克牌順子

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

OJ題 撲克牌順子

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