当前位置:首页 > PHP

php实现顺子

2026-02-14 14:55:26PHP

PHP实现顺子判断的方法

顺子是指一组连续的数字或字母,在扑克牌中通常指五张连续的牌。以下是几种PHP实现顺子判断的方法。

方法一:基本数组排序与遍历

将输入的数组排序后检查是否连续。假设输入是一个包含五个数字的数组:

function isShunzi($numbers) {
    sort($numbers);
    for ($i = 1; $i < count($numbers); $i++) {
        if ($numbers[$i] != $numbers[$i - 1] + 1) {
            return false;
        }
    }
    return true;
}

方法二:处理包含A的特殊情况

在扑克牌中,A可以当作1或14使用。以下是处理这种情况的代码:

function isShunziWithAce($numbers) {
    sort($numbers);
    $hasAce = in_array(1, $numbers) && in_array(14, $numbers);
    if ($hasAce) {
        $numbers = array_diff($numbers, [14]);
        array_unshift($numbers, 1);
    }
    for ($i = 1; $i < count($numbers); $i++) {
        if ($numbers[$i] != $numbers[$i - 1] + 1) {
            return false;
        }
    }
    return true;
}

方法三:使用范围比较

通过比较数组与生成的连续数字范围来判断:

function isShunziByRange($numbers) {
    sort($numbers);
    $min = min($numbers);
    $range = range($min, $min + count($numbers) - 1);
    return $numbers == $range;
}

方法四:处理重复值的情况

如果数组中可能包含重复值,需要先去除重复:

function isShunziNoDuplicates($numbers) {
    $unique = array_unique($numbers);
    if (count($unique) != count($numbers)) {
        return false;
    }
    sort($unique);
    for ($i = 1; $i < count($unique); $i++) {
        if ($unique[$i] != $unique[$i - 1] + 1) {
            return false;
        }
    }
    return true;
}

方法五:优化性能的版本

对于大数据量,可以使用更高效的方法:

php实现顺子

function isShunziOptimized($numbers) {
    $min = min($numbers);
    $max = max($numbers);
    return ($max - $min == count($numbers) - 1) && count(array_unique($numbers)) == count($numbers);
}

以上方法可以根据具体需求选择使用。第一种方法适用于简单的连续数字判断,后面的方法处理了更复杂的情况如Ace和重复值。

标签: 顺子php
分享给朋友:

相关文章

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n! =…

php 路由实现

php 路由实现

PHP 路由实现方法 在 PHP 中实现路由功能有多种方式,以下是几种常见的实现方法: 使用原生 PHP 实现 通过解析 URL 并匹配对应的控制器和动作: $request = $_SERVER…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。用…

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

php实现分类

php实现分类

PHP实现分类的方法 数据库设计 创建分类表时,通常需要包含id、名称、父级id等字段。父级id用于实现多级分类结构。 CREATE TABLE categories ( id INT AU…

php实现的分页

php实现的分页

PHP 实现分页的方法 基本分页逻辑 分页的核心在于计算总页数、当前页码以及数据偏移量。假设每页显示 10 条数据: $current_page = isset($_GET['page']) ? (…