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"
