zoukankan      html  css  js  c++  java
  • PHP算法之回文数

    判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

    示例 1:

    输入: 121
    输出: true
    示例 2:

    输入: -121
    输出: false
    解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
    示例 3:

    输入: 10
    输出: false
    解释: 从右向左读, 为 01 。因此它不是一个回文数。
    进阶:

    你能不将整数转为字符串来解决这个问题吗?

    来源:力扣(LeetCode)

    1.这个转为字符串处理
    class Solution {

        /**
         * @param Integer $x
         * @return Boolean
         */
        function isPalindrome($x) {
            $len = strlen($x);
            $str = strrev($x);
            if($len > 0 && $str == $x){
                return true;
            }  
            return false;           
        }
    }
    数学计算
    class Solution {

        /**
         * @param Integer $x
         * @return Boolean
         */
        function isPalindrome($x) {
            //边界判断
            if ($x < 0) return false;

            $i = 1;
            while ($x / $i >= 10){
                $i *= 10;
            }
            if($x > 99){
                while ($x > 1) {
                    $left = intval($x / $i);
                    $right = $x % 10;
                    if ($left != $right) return false;
                    $x = ($x % $i) / 10;
                    $i = $i/100;
                }
            }else{
                    $left = intval($x / $i);
                    $right = $x % 10;
                    if ($left != $right) return false;  
            }


            return true;
                         
        }
    }
  • 相关阅读:
    C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿!
    Java8的新特性以及与C#的比较
    点旋转坐标变换
    vc++返回模块路径
    为什么不要 "lock(this)" ? lock object 并是readonly(转载)
    《黄帝内经》要义
    C++多线程编程简单实例
    c++ 获取文件大小
    c# 获取文件夹大小
    自动驾驶仿真工具的下载与安装
  • 原文地址:https://www.cnblogs.com/corvus/p/11965175.html
Copyright © 2011-2022 走看看