Home  >  Article  >  Backend Development  >  PHP removes minimum characters and turns into a palindrome string

PHP removes minimum characters and turns into a palindrome string

不言
不言Original
2018-04-13 16:53:341448browse

The content shared with you in this article is about removing the minimum characters in php and turning it into a palindrome string. It has a certain reference value. Friends in need can refer to it

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

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

}

$s=$string =  strtoupper($s);
echo $string ;

This is a randomly generated 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;
    }
}



The above is the detailed content of PHP removes minimum characters and turns into a palindrome string. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn