题目描述
现在有五张扑克牌,我们需要来判断一下是不是顺子。
有如下规则:
A为1,J为11,Q为12,K为13
数据中的0可以看作任意牌
如果给出的五张牌能组成顺子(即这五张牌是连续的)就输出true,否则就输出false。
例如:给出数据[6,0,2,0,4]
中间的两个0一个看作3,一个看作5 。即:[6,3,2,5,4]
这样这五张牌在[2,6]区间连续,输出true
数据保证每组5个数字,每组最多含有4个零
class Solution {
public:
bool IsContinuous( vector<int> numbers ) {
set<int> hash;
int size=numbers.size();
if(size==0) return false;
int _min=15,_max=0;
for(int i=0;i<size;++i)
{
if(numbers[i]>0)
{
if(hash.count(numbers[i])>0) return false;
hash.insert(numbers[i]);
_max=max(_max,numbers[i]);
_min=min(_min,numbers[i]);
}
}
return _max-_min<5;
}
};