当前位置:首页 > PHP

PHP实现回文数

2026-02-16 04:31:41PHP

PHP实现回文数的方法

回文数是指正读和反读都相同的数字或字符串。以下是几种在PHP中实现回文数检测的方法。

方法1:使用字符串反转

将数字转换为字符串,反转后与原字符串比较是否相同。

function isPalindrome($num) {
    $str = strval($num);
    return $str === strrev($str);
}

// 示例
$number = 121;
if (isPalindrome($number)) {
    echo "$number 是回文数";
} else {
    echo "$number 不是回文数";
}

方法2:不使用字符串反转

通过数学方法逐位比较数字的首尾位。

function isPalindromeMath($num) {
    if ($num < 0) return false;
    $original = $num;
    $reversed = 0;
    while ($num > 0) {
        $reversed = $reversed * 10 + $num % 10;
        $num = (int)($num / 10);
    }
    return $original === $reversed;
}

// 示例
$number = 12321;
if (isPalindromeMath($number)) {
    echo "$number 是回文数";
} else {
    echo "$number 不是回文数";
}

方法3:递归实现

使用递归方式检测回文数。

function isPalindromeRecursive($str) {
    if (strlen($str) <= 1) return true;
    if ($str[0] !== $str[strlen($str) - 1]) return false;
    return isPalindromeRecursive(substr($str, 1, -1));
}

// 示例
$number = "1221";
if (isPalindromeRecursive($number)) {
    echo "$number 是回文数";
} else {
    echo "$number 不是回文数";
}

方法4:优化字符串比较

使用循环逐个字符比较,避免完全反转字符串。

PHP实现回文数

function isPalindromeOptimized($str) {
    $len = strlen($str);
    for ($i = 0; $i < $len / 2; $i++) {
        if ($str[$i] !== $str[$len - $i - 1]) return false;
    }
    return true;
}

// 示例
$number = "123321";
if (isPalindromeOptimized($number)) {
    echo "$number 是回文数";
} else {
    echo "$number 不是回文数";
}

注意事项

  • 字符串方法适用于数字和字符串,数学方法仅适用于数字。
  • 递归方法在处理长字符串时可能导致栈溢出。
  • 数学方法效率较高,适用于大数字处理。

标签: 回文PHP
分享给朋友:

相关文章

PHP实现建站

PHP实现建站

PHP建站的基本步骤 安装PHP环境 使用XAMPP、WAMP或MAMP等集成环境快速搭建本地开发环境,这些工具包含Apache、MySQL和PHP。对于生产环境,推荐使用LNMP(Linux+Ngi…

PHP 实现aop

PHP 实现aop

PHP 实现 AOP(面向切面编程) AOP(Aspect-Oriented Programming)是一种编程范式,用于将横切关注点(如日志、事务、权限等)从业务逻辑中分离出来。PHP 本身不原生支…

PHP实现预约

PHP实现预约

PHP预约系统实现方法 创建预约系统需要处理用户输入、数据存储和验证。以下是一个基本的PHP预约系统实现框架: 数据库表结构 CREATE TABLE appointments ( id…

PHP实现录像

PHP实现录像

PHP实现录像功能 PHP本身是服务器端脚本语言,不直接处理视频录制功能,但可以通过以下方式实现录像相关功能: 使用WebRTC技术 前端通过WebRTC获取摄像头视频流,PHP后端处理视频存储:…

PHP签到实现

PHP签到实现

PHP签到功能实现 PHP实现签到功能需要结合数据库存储用户签到记录,并提供前端交互界面。以下是一个完整的实现方案: 数据库设计 创建用户表users和签到记录表sign_records:…

PHP收费视频实现

PHP收费视频实现

实现PHP收费视频功能 搭建PHP收费视频系统需要结合用户权限管理、支付接口和视频流控制。以下是核心实现方法: 用户认证与权限系统 创建用户表存储账户信息,包括用户ID、用户名、密码哈希、会员等级和…