PHP
//给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写
function isPalindrome($s)
{
$s = preg_replace('/[^0-9a-z]+/i', '', strtolower($s));
$arr = str_split($s); //切割为数组
$cnt = count($arr);
for ($i=0; $i < $cnt/2; $i++) {
//思路:主要判断 第一个与最后一个对比 第二个与倒数第二个对比 一次类推
if (!($arr[$i] == $arr[$cnt-$i-1])) {
return false;
break;
}
}
return true;
}
//第二种
function isPalindrome($s)
{
$arr = preg_replace('/[^0-9a-z]+/i', '', strtolower($s));
$i = 0;
$j = strlen($arr) - 1;
while ($i < $j) {
if ($arr[$i] != $arr[$j]) return false;
$i++;
$j--;
}
return true;
}
$str = 'abccba';
// $str = 'A man, a plan, a casnal: Panama';
var_dump(isPalindrome($str));
GO
来源:oschina
链接:https://my.oschina.net/hackdebug/blog/3191932