算法-验证回文串(php&golang)

点点圈 提交于 2020-03-11 18:46:38

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


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!