专栏首页硬核项目经理的专栏【枕边算法】回文算法题PHP实现

【枕边算法】回文算法题PHP实现

①选择任一数值; ②翻转此数值(例如,选择13则翻转为31),并将原数值和翻转数值相加(13+31); ③相加结果若不是回文,则返回②反复执行,若是回文则终止算法 举例: 13+31=44,44是回文,退出

19+91=110,110+011=121,121是回文,退出

https://github.com/zhangyue0503/php/blob/master/%E6%9E%95%E8%BE%B9%E7%AE%97%E6%B3%95/1.7.php

$num = 197;
//13=44
//12=33
//14=55
//19=110
//125=646
//87=4884
//196=内存溢出
//197=881188
//找回文数字算法
function huiwenshuzi($num){
if($num>0){
//反过来
$reNum = (int)implode('',array_reverse(str_split($num)));
$newNum = $num+$reNum;
if(isHuiWen($newNum)){ //出口
return $num+$reNum;
}else{
return huiwenshuzi($newNum); //递归
}
}else{
return '错误';
}
}
//判断是否回文
function isHuiWen($str){
$str = preg_split('/(?<!^)(?!$)/u', $str);
if (count($str) < 2) {
return false;
} else {
$isHui = true;
for ($i = 0; $i < count($str); $i++) {
if ($str[$i] != $str[count($str) - $i - 1]) {
$isHui = false;
break;
}
}
return $isHui;
}
}
echo huiwenshuzi($num);

本文分享自微信公众号 - 硬核项目经理(fullstackpm),作者:ZyBlog

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-07-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ​PHP设计模式之建造者模式

    建造者模式,也可以叫做生成器模式,builder这个词的原意就包含了建筑者、开发者、创建者的含义。很明显,这个模式又是一个创建型的模式,用来创建对象。那么它的特...

    硬核项目经理
  • PHP匿名类的用法

    在PHP7之后,PHP中加入了匿名类的特性。匿名类和匿名方法让PHP成为了更现代化的语言,也让我们的代码开发工作越来越方便。我们先来看看匿名类的简单使用。

    硬核项目经理
  • PHP设计模式之组合模式

    互联网公司流行扁平化管理,也就是管理层级尽量少于或者不超过三层,作为一个底层的码农,你的CEO和你的职级也就相差3层以内。但是很多传统企业,则会有非常深的层级关...

    硬核项目经理
  • Python实现寻找回文数字过程解析

    回文数字是很有意思的数字,不管从最高位开始念,还是从个位开始念,最终结果都一样,有一种对称美。

    砸漏
  • 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

    用户5640963
  • 【python学习】新手基础程序练习(一

    py3study
  • 263. 丑数

    1 是丑数。输入不会超过 32 位有符号整数的范围: [−231, 231 − 1]。

    lucifer210
  • JS中数组的深拷贝和浅拷贝

    变量保存的是一个指针,存放在栈内存中,指针指向一个位置,这个位置就是存放在堆内存引用类型的值

    杨肆月
  • Ugly Number

    Tyan
  • Leetcode_342_Power of Four

    http://blog.csdn.net/pistolove/article/details/52198328

    bear_fish

扫码关注云+社区

领取腾讯云代金券