问题在于给定字符串我必须从给定的数字位置移动每个字母。
例如,
Encrypt(‘ABC’, 4) should return "EFG"
Encrypt("AB C", 2) Should equal to “CD E”
Encrypt("ABC DEF", 2) Should equal to “CDE FGH”
这是我提出的解决方案;
function encrypt(str, index) {
var encryptedstr = '';
var charCode = 0;
for (i = 0; i < str.length; i++) {
charCode = str.charCodeAt(i);
if (charCode >= 65 && charCode <= 77 ){
encryptedstr += String.fromCharCode(charCode + index);
}else{
encryptedstr += String.fromCharCode(charCode);
}
}
return encryptedstr;
}
这适用于给定的输入。但它一直告诉我“答案对任何给定的输入都应该有效。”我在这里做错了什么?
我按如下方式更改了代码,但它也给了我同样的错误。
for (var i = 0; i < str.length; i++)
{
if(str[i] === " ")
{
encryptedstr += " ";
}else{
charCode = (str[i].charCodeAt()) + index;
encryptedstr += String.fromCharCode(charCode);
}
}
答案 0 :(得分:0)
之前我没有涵盖所有约束。这就是它无效的原因。我还要考虑非字母字符。我在不同的帖子中找到了解决方案。
If you have same problem go to this link and follow the answer.