面試題44 撲克牌的順子

2021-07-02 04:19:56 字數 540 閱讀 5560

題目:從撲克牌中隨機抽5張牌,判斷是不是乙個順子,即這5張牌是不是連續的。2~10為數字本身,a為1,j為11,q為12,k為13,而大、小王可以看成任意數字。

思路:可以把5張牌看做乙個陣列,大小王設為0。然後對陣列進行排序,看陣列的數字是不是連續的,因為0可以看做任意數字,所以如果相鄰兩個數字之間有空缺可以用0補。

例如,1和3之間缺少乙個2,剛好陣列中有乙個0,可以用0補2,就構成了順子。

1.先對陣列進行排序

2.計算出陣列中0的個數

3.計算出陣列相鄰兩個數之間空缺的個數,如果空缺總數小於或等於0的個數就是連續的,否則是不連續的。

4.如果陣列中非0元素有重複的,則一定不是順子。

#include using namespace std;

//自定義比較函式

int compare(const void * arg1,const void * arg2)

bool iscontinuous(int * number,int length)

int main()

; cout<

面試題44 撲克牌的順子

題目 從撲克牌中隨機抽取5張牌,判斷是不是乙個順子,即這5張牌是不是連續的。2 10為數字本身,a為1,j為11,q為12,k為13,而大王小王可以看成任意數字。分析 我們用0來表示大王和小王。判斷5個數字是否是連續的有如下三步 1.將陣列排序 2.統計陣列中0的個數 3.統計排序之後的陣列中相鄰數...

面試題目44 撲克牌的順子

題目 從撲克牌中隨機抽五張牌,判斷是不是乙個順子,即這五張牌是不是連續的。2 10為數字本身,a為1,j為11,q為12,k為13,大小王可以看成任意數字。示例 include include using namespace std const int num 14 struct mystruct ...

面試題61 撲克牌順子

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