Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ตรวจสอบว่าสตริงสามารถสร้าง palindrome ใน JavaScript . ได้หรือไม่


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงเป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว

หน้าที่ของฟังก์ชันของเราคือตรวจสอบว่าเราสามารถทำให้สตริงนั้นเป็นสตริงพาลินโดรมได้หรือไม่ โดยการลบอักขระออกจากสตริงไม่เกินหนึ่งตัว หากเราทำได้ ฟังก์ชันควรคืนค่า จริง เท็จ มิฉะนั้น

ตัวอย่างเช่น −

หากสตริงอินพุตเป็น −

const str = 'kjlk';

จากนั้นผลลัพธ์ควรเป็น −

const output = true;

เพราะการลบ 'l' ออกจากสตริง จะเหลือเพียง 'kjk' ซึ่งเป็นสตริงพาลินโดรม

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

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

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

true