JavaScript Palindrome

时间:2017-04-02 19:48:39

标签: javascript function palindrome

我找到了一个关于如何在StackOverFlow中编写回文的解决方案。这是代码段:

function palindrome(str) {
    var len = str.length;
    for ( var i = 0; i < Math.floor(len/2); i++ ) {
        if (str[i] !== str[len - 1 - i]) {   //Problem in this line
            return false;
        }
    }
    return true;
}

我理解除了我在这里的所有线路。有人可以帮我分手吗?提前致谢!

2 个答案:

答案 0 :(得分:2)

循环遍历字符串的前半部分,它检查连续字符,看它是否与字符串另一端的下一个连续字符不相等(或不是相同的字符),从结束开始

|0|1|2|3|4|
|l|e|v|e|l|

len = 5

这会给你:

str[i] !== str[len - 1 - i]

i = 0时,str[i]为l,等于str[5-1-0],即str[4],也是l

答案 1 :(得分:1)

str[i]表示 str 中的(i + 1) th 字符。如果 str 是回文,则此字符必须等于字符串末尾 i 位置的字符(根据定义)。

字符串中的最后一个字符位于 len - 1 位置(因为 len 被定义为字符串的长度,索引从0开始计数)。因此,您需要从中减去 i 以到达角色所在的位置,该位置应与str[i]相同。因此str[len - 1 - i]

!==进行比较,即不相等。在这种情况下,我们肯定知道我们没有回文,可以退出false