Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một chuỗi. Hàm có thể thực hiện các thao tác sau trên chuỗi:
- mỗi ký tự BẮT BUỘC phải thay đổi thành ký tự trước hoặc sau trong bảng chữ cái.
- "a" chỉ có thể đổi thành "b" và "z" thành "y".
Hàm phải trả về True nếu ít nhất một trong các kết quả của các thao tác này là một palindrome, False ngược lại.
Ví dụ
Dưới đâ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));
Kết quả
Kết quả console:
true