前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【枕边算法】回文算法题PHP实现

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

作者头像
硬核项目经理
发布2019-08-06 17:33:09
5970
发布2019-08-06 17:33:09
举报

①选择任一数值; ②翻转此数值(例如,选择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);
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农老张 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档