79.把字符串的字母转换成ascii码加n的字母
把字符串的字母转换成 ascii 码加 n 的字母
题目描述
给定一个字符串,将字母转换成 ascii 码加 n 的字母。
示例
- 示例 1:
输入:s = "abc", n = 2
输出:"cde"
- 示例 2:
输入:s = "a1c1e1", n = 2
输出:"cde"
提示
1 <= s.length <= 100
s
由小写英文字母、大写英文字母、数字组成1 <= n <= 100
code
/**
* @param {string} s
* @param {number} n
* @return {string}
*/
let s = "abc";
let n = 2;
var shiftCharacters = function (s, n) {
// 请在此处编写代码
};
console.log(shiftCharacters(s, n));
参考答案
DETAILS
function shiftCharacters(str, n) {
return str
.split("")
.map((char) => {
// 获取字符的 ascii 码
const code = char.charCodeAt(0);
if (code >= 65 && code <= 90) {
// 处理大写字母
// 大写字母的 ascii 码范围是 65-90
return String.fromCharCode(((((code - 65 + n) % 26) + 26) % 26) + 65);
} else if (code >= 97 && code <= 122) {
// 处理小写字母
// 小写字母的 ascii 码范围是 97-122
return String.fromCharCode(((((code - 97 + n) % 26) + 26) % 26) + 97);
}
return char; // 非字母字符保持不变
})
.join("");
}
// 示例用法
console.log(shiftCharacters("abcZ", 3)); // 输出: "defC"
console.log(shiftCharacters("Xyz", -3)); // 输出: "Uvw"
console.log(shiftCharacters("Hello", 13)); // 输出: "Uryyb"