使用 Javascript 中的开关代码解决 Caesers 密码
Solve Caesers Cipher Using a switch code in Javascript
您可能熟悉凯撒密码(see this wiki on caesers cipher AKA ROT13)
我一直在寻找密码的解决方案,但我没有看到任何人使用 switch 语句。鉴于挑战(见下文),这个问题是否可以通过使用 switch
语句简单地解决?我已将我的代码放在下面,但它不起作用。
function cciph(str) {
var code = "";
switch {switch (str) {
case 'A':
code = "N";
break;
case 'B:
code = 'O';
break;
//.....
case 'M': code = 'Z';
}
return str;
}
cciph("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.");
我不知道开关,但这会给你所有 26 种可能的字符串突变,理论上包括解码后的字符串。
var alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
function cciph(cipherText) {
for(i = 0; i < 26; i++) {
var decodedText = cipherText.split("").map(function(c) {
var charIndex = alphabet.indexOf(c.toLowerCase());
if (charIndex == -1) {
return c;
}
var modifiedIndex = charIndex + i;
var correctedIndex = modifiedIndex % 26;
return alphabet[correctedIndex];
});
console.log(decodedText.join(""));
}
}
cciph("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.");
您可能熟悉凯撒密码(see this wiki on caesers cipher AKA ROT13)
我一直在寻找密码的解决方案,但我没有看到任何人使用 switch 语句。鉴于挑战(见下文),这个问题是否可以通过使用 switch
语句简单地解决?我已将我的代码放在下面,但它不起作用。
function cciph(str) {
var code = "";
switch {switch (str) {
case 'A':
code = "N";
break;
case 'B:
code = 'O';
break;
//.....
case 'M': code = 'Z';
}
return str;
}
cciph("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.");
我不知道开关,但这会给你所有 26 种可能的字符串突变,理论上包括解码后的字符串。
var alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
function cciph(cipherText) {
for(i = 0; i < 26; i++) {
var decodedText = cipherText.split("").map(function(c) {
var charIndex = alphabet.indexOf(c.toLowerCase());
if (charIndex == -1) {
return c;
}
var modifiedIndex = charIndex + i;
var correctedIndex = modifiedIndex % 26;
return alphabet[correctedIndex];
});
console.log(decodedText.join(""));
}
}
cciph("GUR DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.");