【四脚猫】每日一题(2016年10月24日): 给定一个字符串,判断它是否是一个回文? 只考虑字母字符的情况,并且忽略大小写。
所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如”level” 、 “aaabbaaa” 。
惊鲵第一个给出了算法描述:先获取字符串长度,然后除2,获取字符串后一半,然后反转过来看是否等于前面,等于就是一个回文。
爪的速度果然快,光速提交了另一种算法的code!
function is_palindrome($str)
{
$str = strtolower($str);
return $str === strrev($str);
}
asun依据题意提炼出数学模型:问题的关键在于 $arr[$n] == $arr[$len-1-$n],并且给出了解法。
function is_hui_wenzi($str){
$str = strtolower($str);
$len = strlen($str);
$n = 0;
for($i=0;$i<$len;$i++){
if($str{$i} == $str{$len-1-$n}){
$n++;
}
}
return $len == $n;
}
blackpuppy是个非常严谨的工程师,不仅仅实现了算法,还加上了测试代码!
function isReverse($string)
{
$tmp = strtolower($string);
return $tmp === strrev($tmp);
}
function test()
{
$strings = ['level', 'aaabbaaa', 'abcd', 'ABCdcba'];
foreach ($strings as $string) {
$result = isReverse($string);
echo '"' . $string . '"' . ($result ? '是' : '不是') . '回文' . PHP_EOL;
}
}
test();
没想到每日一题停了这么久,还是这么多朋友积极参与,非常感谢大家。
技术水平从来不是一朝一夕就能登峰造极的,所有牛逼的人物都是一步步走出来的。
愿我们一起努力,每天提高一点点,共同成长为更牛逼的工程师!
欢迎各位攻城狮,各位大牛给每日一题投稿,大家可以把自己碰到的有趣问题,工作中碰到的难题等…发送到
稿件邮箱:2313427189@qq.com
或者直接在群里 @2313427189 也行。
欢迎各位攻城狮,各位大牛给每日一题投稿,大家可以把自己碰到的有趣问题,工作中碰到的难题等…发送到
稿件邮箱:2313427189@qq.com