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

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

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một chuỗi làm đối số đầu tiên và duy nhất.

Nhiệm vụ của hàm của chúng ta là kiểm tra xem liệu bất kỳ sự sắp xếp lại nào trong các ký tự của chuỗi có kết quả thành một chuỗi palindrome hay không. Nếu có, thì hàm của chúng ta sẽ trả về true, ngược lại là false.

Ví dụ -

Nếu chuỗi đầu vào là -

const str = 'amadm';

Sau đó, đầu ra phải là -

const output = true;

bởi vì chuỗi có thể được sắp xếp lại để tạo thành 'madam' là một chuỗi palindrome.

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

true