這篇文章給大家分享的內容是關於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中文網其他相關文章!