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

Kiểm tra hoán vị của palindrome trong JavaScript

Viết hàm kiểm tra có thể sắp xếp lại chuỗi thành palindrome không. Điều kiện: tối đa 1 ký tự xuất hiện số lẻ (chuỗi lẻ) hoặc 0 ký tự (chuỗi chẵn).

Ví dụ: 'amadm' → true (sắp thành 'madam').

Ví dụ

const str = 'amadm';
const canFormPalindrome = (str = '') => {
  const hash = {};
  let count = 0;
  for (let i = 0; i < str.length; i++) {
    let c = str[i];
    if (c === ' ') continue;
    if (hash[c]) delete hash[c];
    else hash[c] = true;
    count++;
  }
  if (count % 2 === 0) return Object.keys(hash).length === 0;
  else return Object.keys(hash).length === 1;
};
console.log(canFormPalindrome(str));

Kết quả

true