代码之家  ›  专栏  ›  技术社区  ›  Kevin Mangal

谁能告诉我为什么这个方法不适用于寻找回文?

  •  0
  • Kevin Mangal  · 技术社区  · 8 年前

    function palindrome(str) {
      var alphaNumericStr = str.replace(/\W/g,""); 
      var lowerCaseAlphaNumericString = alphaNumericStr.toLowerCase();  
      var arr = lowerCaseAlphaNumericString.split(""); 
      arr.reverse();                                   
      var reversedString = arr.join("");               
    
      if(str === reversedString){
        return true;
      } 
      return false;
     }
    
    palindrome("race car");
    
    3 回复  |  直到 8 年前
        1
  •  0
  •   wbadart    8 年前

    您将删除空格并转换为小写的字符串与原始字符串进行比较。将条件替换为:

    if(lowerCaseAlphaNumericString == reversedString){
        rethrn true;
    }
    return false;
    

    // ...
    var reversedString = arr.join('');
    return lowerCaseAlphaNumericString == reversedString;
    

    demo

        2
  •  0
  •   Roshan Nalawade    8 年前

    if(str === reversedString)

        if(lowerCaseAlphaNumericString === reversedString) {
            return true;
        } 
        return false;
    }
    
        3
  •  0
  •   Ashish Shukla    8 年前

    function check_Palindrome(input_str){
        var astr = input_str.toLowerCase().replace(/\W/g,'');
        var acount = 0;
        if(astr==="") {
            console.log("Not Palindrome.");
            return false;
        }
        if ((astr.length) % 2 === 0) {
            acount = (astr.length) / 2;
        } else {
            if (astr.length === 1) {
                console.log("Palindrome.");
                return true;
            } else {
                acount = (astr.length - 1) / 2;
            }
        }
       for (var x = 0; x < acount; x++) {
            if (astr[x] != astr.slice(-1-x)[0]) {
                console.log("Not Palindrome.");
                return false;
            }
        }
        console.log("Palindrome.");
        return true;
    }