Dragon
主机之家测评主机之家测评  2020-07-06 21:20 主机之家测评 隐藏边栏 |   抢沙发  5 
文章评分 0 次,平均分 0.0

一个简单的算法题:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

PHP 实现:

  function isPalindrome($s) {      $s = preg_replace( '/[^a-z0-9]/i', '', $s);      if(strcasecmp($s,strrev($s)) != 0){          return false;      }      return true;  }

测试用例:

  "HEkSPsqs"?"3"?"rqrPSkEH"  //false
  "A man, a plan, a canal: Panama"  //true

涉及知识:

1.正则表达式替换

2.strcasecmp 与 strrev函数

也可以用笨办法遍历实现:

  function isPalindrome($s) {  $s = preg_replace( '/[^a-z0-9]/i', '', $s);  $s = str_split($s);  $max = count($s)-1;  for($i=0;$i<$max/2;$i++){    if(strcasecmp($s[$i],$s[$max-$i]) != 0){     return false;    }  }  return true;  }

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

发表评论

扫一扫二维码分享