劍指offer 面試題61 撲克牌順子

2021-09-12 11:26:44 字數 568 閱讀 5478

面試題–【劍指offer】 題目解答

一副撲克牌,裡面有2個大王,2個小王,隨機從中抽出了5張牌,看看能不能抽到順子,

所謂順子就是五個連續的數字,如1,2,3,4,5。為了方便測試其中大\小 王可以看成任何數字,並且a看作1,j為11,q為12,k為13。

現在,要求你使用這幅牌模擬上面的過程,如果隨機抽出的牌能組成順子就輸出true,否則就輸出false。為了方便起見,你可以認為大小王是0。

根據題目的介紹,我們只需要做以下三件事就可以清楚的知道五張牌是不是順子了:

(1)首先對陣列中的元素排序

(2)統計陣列中的大小王個數(即0的數量)

(3)統計排序之後,相鄰元素之間的空缺總數

然後只要比較0的數量和空缺總數之間的關係即可,如果0的個數大於空缺總數那麼可以組成順子,反之不可以。

另外需要注意的是,有對子一定不能構成順子!

class solution 

return

(numberofzero < numberofgap)

? false:true;}}

;

面試題61 劍指offer 撲克牌中的順子

題目 從撲克牌中隨機抽5張牌,判斷是不是乙個順子,即這5張牌是不是連續的。其中2 10為數字本身,a為1,j為11,q為12,k為13,而大小王可以看成任意數字。解法 將大小王用0表示,與其他牌區分開 1.先對陣列排序 2.統計0的個數 3.比較陣列要組成順子的差與0個數 param numbers...

劍指offer 面試題61 撲克牌中的順子

開始行動,你已經成功一半了,獻給正在奮鬥的我們 從撲克牌中隨機抽5張牌,判斷是不是乙個順子,即這5張牌是不是連續的。且大小王能夠當做任意一張牌。做這道題,首先我們需要把撲克牌抽象成計算機語言,其中2 10可以用數字2 10來表示。a為1,j為11,q為12,k為13,而大小王為0。抽象之後,我們可以...

劍指Offer 面試題61 撲克牌中的順子

從撲克牌中隨機抽5張牌,判斷是不是乙個順子,即這5張牌是不是連續的。2 10為數字本身,a為1,j為11,q為12,k為13,而大 小王為 0 可以看成任意數字。a 不能視為 14。示例 1 輸入 1,2,3,4,5 輸出 true示例 2 輸入 0,0,1,2,5 輸出 true限制 先統計元素0...