本篇文章给大家分享的内容是关于php移除最少字符变成回文串 ,有着一定的参考价值,有需要的朋友可以参考一下
$s='';
for($i=0;$i<15;$i++)
{
$s.=chr(rand(97, 122));
}
$s=$string = strtoupper($s);
echo $string ;这是随机生成一个字符串
//一段字符串,移除最少的字符,使之成为一个回文串 比如 ABBA ABABA A 都是回文串// ABSDFDA 移除最少字符后形成回文 变成 ADFDA// 重点讲解下 回串文的 第一个 和最后一个字符 必定一样
//删除字符串的某个位置的值
function delete_str_pos($str,$pos)
{
$s = str_split($str);
unset($s[$pos]);
return implode("",array_values($s));
}
//判断是不是一个回文串
function is_huichuan($s)
{
if(strlen($s)==1)
{
return true ;
}else
{
$o = strlen($s)/2;
$two = floor($o);
$a = substr($s,0,$two);
if(is_float($o))
{
$b=substr($s,$two+1);
}else
{
$b=substr($s,$two);
}
if(strtolower($a)==strtolower(strrev($b)))
{
return true ;
}
}
return false;
}
//判断回文的第2中方法
function is_huiwen($s)
{
if(strtoupper($s) == strtoupper(implode("",array_reverse(str_split($s)))))
{
return true ;
}
return false ;
}
function delete_pos($str,$min,$max)
{
$s = str_split($str);
if($max > strlen($str))
{
$max = strlen($str);
}
for($i=$min;$i<$max;$i++)
{
unset($s[$i]);
}
return implode("",array_values($s));
}
function method1($string)
{
$end = -1;
for($i=0;$i<strlen($string);$i++)
{
if(is_huichuan($string))
{
header("Content-type:text/html;charset=utf-8");
echo"<br/>";
echo "是回文";
break;
}
$pos = strrpos($string,$string[$i],$end);
if(is_numeric($pos))
{
//表示是第一个 直接删除 的个字符
if($pos == $i)
{
$string= delete_str_pos($string,$pos); //去除字符串
$i--;
}elseif($pos == strlen($string)-1)
{
//这次是最后一个字符串 为回文
$end = $end -1;
}else
{
$string= delete_pos($string,$pos+1,strlen($string)-$i);
}
}else
{
//如果没有找到 直接删除 $i 的字符 表示不正确
$string= delete_str_pos($string,$i); //去除字符串
$i--;
}
echo "<br/>";
echo $string;
}
}以上就是php移除最少字符变成回文串的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号