题目:
随机从一副扑克牌中抽出了5张牌,判断是否是顺子,即五张牌是不是连续的。大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。(本文不大、小王看做0)
分析:
java代码实现:
private static boolean isContinuous(int[] numbers) {
if(numbers == null || numbers.length<1) {
return false ;
}
MergeSort.sort(numbers); //升序排序,
int numbersOfzero = 0;
int numbersOfgap = 0;
for(int i=0;i<numbers.length;i++) { //统计鬼牌的数目
if(numbers[i] == 0)
numbersOfzero++;
}
int start = numbersOfzero ;
int next = start + 1;
while(next < numbers.length) {
if(numbers[start] == numbers[next]) //如果有对子,则这副牌不可能是顺子了
return false;
numbersOfgap = numbers[next] - numbers[start] - 1;
start = next ;
next = start + 1;
}
return numbersOfgap < numbersOfzero ? true:false;
}