劍指offer 45 撲克牌順子

2021-09-11 01:22:40 字數 1031 閱讀 6471

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的運氣如何, 如果牌能組成順子就輸出true,否則就輸出false。為了方便起見,你可以認為大小王是0。

時間限制:1秒 空間限制:32768k 熱度指數:142753

本題知識點: 字串

先排序,找出最小非0值,新建bool陣列,標記最小非0值起連續5個數,若出現則為true.

最後遍歷bool陣列,若沒出現,判斷是否存在大小王,若存在則消去一張大小王,否則返回false

class solution 

bool flag[5]=; //表示從最小數開始,連續卡牌的張數

int k=i; //大小王的張數

++i;

for(;i<5;++i)

if(num[i]-min<5)

flag[num[i]-min]=true;

for(i=0;i<5;++i)

}return true;

}};

二.先排序,然後找出最小值,判斷有沒有重複的值,找出不重複的個數,再加上大小王的個數,若等於5則true 否則false

class solution 

int k=i; //大小王的張數

int s=1;

for(i=i+1;i<5;++i)

if(s+k==5)

return true;

else return false;

}};

劍指offer 45 撲克牌順子

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

劍指offer 45撲克牌順子

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

劍指offer45 撲克牌順子

判斷陣列能否構成撲克牌順子,其中0可以代表任何數。滿足陣列長度為5,除0外其它數個數不超過1,除0外其它數相差小於等於4即可 coding utf 8 class solution def iscontinuous self,numbers write code here 陣列長度為5,除0外其它數...