题目描述
解题思路
- 首先遍历每一个字符。
- 通过charCodeAt()来判断字符的ASCII码值,如果该值在A-Z之间继续判断-13之后是否还在这个范围,如果还在这个范围直接通过charCodeAt()进行转换字符即可。
- 如果该值不在A-Z之间,直接进行拼接原字符即可。
实现代码
function rot13(str) { let temp = ''; for (let v of str) { if (v.charCodeAt() < 65 || v.charCodeAt() > 90) { temp = temp + v } else { if (v.charCodeAt()-13 < 65) { temp = temp + String.fromCharCode(91 - (65 - v.charCodeAt() + 13)) } else { temp = temp + String.fromCharCode(v.charCodeAt()-13) } } } temp return temp; } rot13("SERR CVMMN!"); 复制代码
题目链接
题目反思
- 学会使用charCodeAt()将字符转换为对应的ASCII码值。
- 学会使用fromCharCode将ASCII码值转换为对应的字符。
- 学会使用new Map(数组),来将一个数组转换为对应的Map,这样比一个一个的添加进Map要方便的多。