Posted by & filed under 每日一题.

【四脚猫】每日一题(2016年10月24日): 给定一个字符串,判断它是否是一个回文? 只考虑字母字符的情况,并且忽略大小写。

所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如”level” 、 “aaabbaaa” 。

 

惊鲵第一个给出了算法描述:先获取字符串长度,然后除2,获取字符串后一半,然后反转过来看是否等于前面,等于就是一个回文。

爪的速度果然快,光速提交了另一种算法的code!

1
2
3
4
5
function is_palindrome($str)
{
$str = strtolower($str);
return $str === strrev($str);
}

asun依据题意提炼出数学模型:问题的关键在于  $arr[$n] == $arr[$len-1-$n],并且给出了解法。

1
2
3
4
5
6
7
8
9
10
11
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是个非常严谨的工程师,不仅仅实现了算法,还加上了测试代码!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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