JavaScript基础算法——检查回文字符串

133 阅读1分钟

要求:

如果给定的字符串是回文,返回true,反之,返回false

如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文)。

注意你需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文。

函数参数的值可以为"racecar""RaceCar""race CAR"

样本:

palindrome("eye") 应该返回一个布尔值

palindrome("eye") 应该返回 true.

palindrome("race car") 应该返回 true.

palindrome("not a palindrome") 应该返回 false.

palindrome("A man, a plan, a canal. Panama") 应该返回 true.

palindrome("never odd or even")应该返回 true.

palindrome("nope") 应该返回 false.

palindrome("almostomla") 应该返回 false.

palindrome("My age is 0, 0 si ega ym.") 应该返回 true.

palindrome("1 eye for of 1 eye.")应该返回 false.

palindrome("0_0 (: /-\ :) 0-0")应该返回 true.

解法:

function palindrome(str) {
  
  var arr = str.toLowerCase().replace(/[^a-z0-9]/g,"").split("");
  
  for(var i=0;i<arr.length/2;i++){
    if(arr[i]!=arr[arr.length-i-1]){
      return false;
    }
  }
  return true;
}



palindrome("A man, a plan, a canal. Panama");