PHP 扑克牌是否连续问题

从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是连续的,JQK用11、12、13表示

答案

既然是顺子,那么肯定没有对子,

并且,最大值和最小值的差值为数组长度减1

  1. function eatDuck(array $arr)
  2. {
  3. $count = count($arr);
  4. if (count(array_unique($arr)) != $count) {
  5. return false;//对子
  6. }
  7. if (max($arr) - min($arr) != $count - 1) {
  8. return false;
  9. }
  10. return true;
  11. }

测试代码:

  1. var_dump(eatDuck([1, 3, 5, 2, 4]));
  2. var_dump(eatDuck([10, 13, 11, 12, 14]));
  3. var_dump(eatDuck([1, 3, 5, 7, 9]));

参考资料