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

Kiểm tra xem một chuỗi có thể được tạo palindrome trong JavaScript hay không

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 là kiểm tra xem chúng ta có thể biến chuỗi đó thành chuỗi palindrome hay không bằng cách xóa nhiều nhất một ký tự khỏi chuỗi. Nếu chúng ta có thể làm như vậy, hàm sẽ trả về true, ngược lại là false.

Ví dụ -

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

const str = 'kjlk';

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

const output = true;

bởi vì bằng cách xóa 'l' khỏi chuỗi, chỉ còn lại 'kjk' là một chuỗi palindrome.

Ví dụ

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

const str = 'kjlk';
const isPalindrome = (str = '', start, end) => {
   while (start < end) {
      if (str[start] != str[end]) {
         return false;
      };
      start ++;
      end --;
   };
   return true;
};
const canMakePalindrome = (str = '') => {
   let left = 0, right = str.length - 1;
   while (left < right - 1) {
      if (str[left] !== str[right]) {
         if (isPalindrome(str, left, right - 1)) {
            return true;
         };
         if (isPalindrome(str, left + 1, right)) {
            return true;
         };
         return false;
      }else {
         left ++;
         right --;
      };
   };
   return true;
}
console.log(canMakePalindrome(str));

Đầu ra

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

true