php移除最少字符变成回文串

不言
发布: 2018-04-13 16:53:34
原创
1655人浏览过

本篇文章给大家分享的内容是关于php移除最少字符变成回文串 ,有着一定的参考价值,有需要的朋友可以参考一下

$s='';
for($i=0;$i<15;$i++)
{

    $s.=chr(rand(97, 122));

}

$s=$string =  strtoupper($s);
echo $string ;
登录后复制

这是随机生成一个字符串

字狐AI
字狐AI

由GPT-4 驱动的AI全能助手,支持回答复杂问题、撰写邮件、阅读文章、智能搜索

字狐AI 26
查看详情 字狐AI
//一段字符串,移除最少的字符,使之成为一个回文串    比如 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在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号