描述
现在有五张扑克牌,我们需要来判断一下是不是顺子。
有如下规则:
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 ) {
vector<int> v;
for (auto it = numbers.begin(); it != numbers.end(); it++)
{
if (*it != 0) v.push_back(*it);
}
sort(v.begin(), v.end());
int vL = v.size();
int max = v[vL-1] - v[0];
if (max >= 5)
{
return false;
}
else
{
for (int i = 1; i < vL; i++)
{
if (v[i-1] == v[i])
{
return false;
}
}
}
return true;
}
};