JavaScript回文
JavaScript Palindrome
我找到了如何在 Whosebug 中编写回文的解决方案。这是代码片段:
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;
}
除了我这里的那一行,我理解每一行。谁能帮我分解一下?提前致谢!
str[i]
表示str中的第(i+1)个字符。如果 str 是回文,那么这个字符必须等于从字符串末尾算起 i 个位置的字符(根据定义)。
字符串中的最后一个字符位于 len - 1 位置(因为 len 被定义为字符串的长度,和索引从 0 开始计数)。所以你需要从中减去 i 以到达角色所在的位置应该与 str[i]
相同。因此 str[len - 1 - i]
与!==
进行比较,即不等于。在那种情况下,我们肯定知道我们没有回文,可以用 false
.
退出
循环遍历字符串的前半部分,并检查连续字符以查看它是否不等于(或不同字符)字符串另一端的下一个连续字符,从结束。
|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
我找到了如何在 Whosebug 中编写回文的解决方案。这是代码片段:
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;
}
除了我这里的那一行,我理解每一行。谁能帮我分解一下?提前致谢!
str[i]
表示str中的第(i+1)个字符。如果 str 是回文,那么这个字符必须等于从字符串末尾算起 i 个位置的字符(根据定义)。
字符串中的最后一个字符位于 len - 1 位置(因为 len 被定义为字符串的长度,和索引从 0 开始计数)。所以你需要从中减去 i 以到达角色所在的位置应该与 str[i]
相同。因此 str[len - 1 - i]
与!==
进行比较,即不等于。在那种情况下,我们肯定知道我们没有回文,可以用 false
.
循环遍历字符串的前半部分,并检查连续字符以查看它是否不等于(或不同字符)字符串另一端的下一个连续字符,从结束。
|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