当前位置:首页 > 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实现分类的方法 数据库设计 创建分类表时,通常需要包含id、名称、父级id等字段。父级id用于实现多级分类结构。 CREATE TABLE categories ( id INT AU…

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

php 实现队列

php 实现队列

PHP 实现队列的方法 PHP 可以通过多种方式实现队列功能,以下是几种常见的实现方法: 使用数组实现队列 PHP 数组可以通过 array_push 和 array_shift 函数模拟队列的先进…

php 实现跳转

php 实现跳转

PHP 实现页面跳转的方法 在PHP中,实现页面跳转可以通过多种方式完成,以下是几种常用的方法: 使用header函数 header函数是PHP中最常用的跳转方法,通过发送HTTP头部信息实现跳转。…

php实现短信验证

php实现短信验证

PHP实现短信验证的步骤 选择合适的短信服务提供商 国内常见的短信服务提供商包括阿里云短信、腾讯云短信、云片等。注册账号并获取API密钥和签名模板是第一步。这些平台通常提供详细的开发文档和SDK。…

php实现获取验证码

php实现获取验证码

使用GD库生成验证码 在PHP中,可以通过GD库来生成验证码图片。以下是一个简单的实现示例: <?php session_start(); $width = 120; $height = 40…