Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Đảo ngược chữ cái trong chuỗi dùng JavaScript

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào một chuỗi str bao gồm chữ cái và một số ký tự đặc biệt. Hàm phải trả về một chuỗi mới dựa trên chuỗi đầu vào, nơi tất cả các ký tự không phải chữ cái giữ nguyên vị trí, và tất cả các chữ cái đảo ngược vị trí của chúng.

Ví dụ, nếu đầu vào là:

Đầu vào

const str = 'k_lmn_opq';

Đầu ra

const output = 'q_pon_mlk';

Ví dụ

Dưới đây là mã thực hiện:

const str = 'k_lmn_opq';
const reverseAlphabets = (str) => {
  const arr = str.split('');
  let left = 0;
  let right = arr.length - 1;
  const swap = (a, b) => {
    const temp = arr[a];
    arr[a] = arr[b];
    arr[b] = temp;
  };
  const isLetter = (x = '') => /[a-zA-Z]/.test(x);
  while (left <= right) {
    while (!isLetter(arr[left])) {
      left += 1;
      if (left > right) { break; }
    }
    while (!isLetter(arr[right])) {
      right -= 1;
      if (left > right) { break; }
    }
    if (left > right) { break; }
    swap(left, right);
    left += 1;
    right -= 1;
  }
  return arr.join('');
};
console.log(reverseAlphabets(str));

Kết quả

q_pon_mlk