Computer >> Máy Tính >  >> Lập trình >> Javascript

Tạo palindrome bằng cách thay đổi từng ký tự thành ký tự lân cận trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một chuỗi. Hàm của chúng ta có thể thực hiện các thao tác sau trên chuỗi -

  • mỗi ký tự PHẢI được thay đổi thành ký tự trước hoặc ký tự sau trong bảng chữ cái.
  • "a" chỉ có thể được đổi thành "b" và "z" thành "y".

Hàm của chúng ta sẽ trả về True nếu ít nhất một trong các kết quả của các hoạt động này là palindrome hoặc False nếu không.

Ví dụ

Sau đây là mã -

const str = 'adfa';
const canFormPalindrome = (str = '') => {
   const middle = str.length / 2;
   for(let i = 0; i < middle; i++){
      const first = str[i].charCodeAt()
      const last = str[str.length - (i + 1)].charCodeAt()
      const distance = Math.abs(last - first)
      if(distance > 2 || distance === 1){
         return false;
      };
   };
   return true;
};
console.log(canFormPalindrome(str));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

true