我如何修复这个回文检查器?

时间:2015-11-28 15:03:11

标签: javascript palindrome

我试图制作这个回文检查器,但它有时会返回正确的答案,有时不会。请告诉我这段代码中的错误...我知道有更有效的方法来制作回文检查器,但出于学习目的,我想知道我的错误...

function palindrome(str) {
  var newString;
  //convert string to lower-case
  var strLowerCase = str.toLowerCase();
  //Find string length
  var strLength = str.length;
  //replace first 1/2 with second 1/2
  newString = replaceLetters(strLowerCase,strLength);
  if(newString === strLowerCase){
    return true;
  }else{
    return false;
  }
}

function replaceLetters(string,length){
  var x;
  for(var a = 0; a<Math.ceil(length/2) ; a++){
    x = string.replace(string.charAt(a),string.charAt(length-1));
    length--; 
  }
  return x;
}


palindrome("eye");

1 个答案:

答案 0 :(得分:0)

您不应将str长度作为参数传递。只需在replaceLetters中从str.length - 1创建一个可变长度。你也想要math.floor而不是math.ceil。让我们说一个9个字母的单词,你只想交换前4个字符而不是第5个字符。你不需要交换5号中间字符.Ex:Racecar,你不要用任何东西交换e检查它的回文。您也可以使用拼接功能,而不是使用自己的替换字母功能。一些其他的knitpicking,因为你只需要一次调用lowcase(),所以制作strlowercase var的重点是什么?