79.把字符串的字母转换成ascii码加n的字母

书诚小驿2025/03/09前端面经算法Javascript

把字符串的字母转换成 ascii 码加 n 的字母

题目描述

给定一个字符串,将字母转换成 ascii 码加 n 的字母。

示例

  1. 示例 1:
输入:s = "abc", n = 2
输出:"cde"
  1. 示例 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"
最后更新时间' 2025/3/9 18:24:05